home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Tools 4
/
Amiga Tools 4.iso
/
text+faqs
/
amigafaq
/
amigafaq.doc
next >
Wrap
Text File
|
1996-02-26
|
146KB
|
3,317 lines
Amiga-FAQ
*********
This document lists some frequently asked questions and tries to
give answers. Its intention is to help new users and to reduce the
amount of news that most experienced users don't like to read anymore.
Please notice that there are many questions that aren't answered yet,
even more: Whole sections that remain empty! I feel that I cannot give
satisfying answers. So it's your turn: Fill the gaps and tell me what i
should include into this document!
Disclaimer
1 CPU, Custom chips, RAM and other stuff
1 What are 68EC020, 68EC030 and 68LC040?
2 What's an FPU?
3 Can I use a 3.5' HD in my A1200?
2 The Operating System
1 Can I use another Kickstart than the builtin?
2 The Graphical User Interface
3 What is MUI?
1 Icon collections and Backgrounds
4 What is the Amiga equivalent of . (Current directory)?
5 The PIPE: queue-handler
1 Using PIPE: in a standard AmigaShell environment
2 The Pipe command
3 Pipe command support in AmigaShell
4 Quick usage guide
5 Related things
6 Troubleshooting
6 ARexx, the program control language
3 How about Graphics?
1 What are chunky and planar displays?
2 What is doublebuffering?
3 What monitors will work on my Amiga 1200/4000?
4 How do I switch between PAL and NTSC?
4 Programming
1 What documentation do I need as an Amiga programmer?
2 What is CATS?
3 Where do I get the Amiga includes?
4 How do I become a developer?
5 What compilers (assemblers) are there?
6 Those never working Esc sequences!
7 Is it possible to use AmigaBasic on the A1200?
8 How do I localize my program?
9 How to obtain a pointer to a console's window
10 What are pragmas?
11 My Compiler/Linker is complaining about missing symbol xxx.
12 Where do I find the function xxx?
13 The GNU C compiler: general information and installation
1 Current Version
2 Requirements
3 Authors
4 Sources for Gcc
5 Inline Headers
6 Amiga Libraries
7 Installation
8 Compiling
9 How to get help
5 Applications
1 Text Editors
2 What word processors are there?
3 Desktop Publishing
4 What is TeX and where can I get it?
5 Are there any Postscript interpreters?
1 Amiga Font Formats
2 Frequently Requested Amiga Fonts
3 Commercial Font Sources
4 Non-Latin fonts on the Amiga
5 Amiga Font Installation
6 Amiga Font Utilities
7 Making Outline Fonts
8 Problems and Possible Solutions
6 How to deal with Non-Latin texts?
1 Japanese editors and viewers
2 Chinese text viewers
6 Connecting your Amiga to the world
7 Emulators
1 Can I run Unix on my Amiga?
2 Is it possible to use the Amiga as X11 terminal?
3 Is there a way to start MS-Dos programs?
4 How to mount MsDos-formatted Syquests on Amiga
8 Miscellaneous
1 Is there any unix version of LhA?
2 What are files ending with ...?
3 Is there a Stacker-like utility to pack my hard drive?
4 Where do I get Fish disk xxx?
9 Where and how do I get software and other informations?
1 Files and databases on freely distributable software
2 A collection of tests
3 Getting files from a FTP server
4 Getting files from a Mail server
5 Getting files from a mailbox
6 The Fish PD series
1 The Amiga Library disks
2 The Fresh Fish CD-Roms
7 How do I Read and write MS-Dos disks?
8 How do I split large files?
9 Discussing things
10 Other FAQ's
The Amiga-FAQ archive
Contributions
Credits
Index
Disclaimer
**********
This document is
Copyright (C) Ignaz Kellerer
Georg-Habel-Str. 11
81241 Munich (Germany)
Tel. (+49) 089 / 885147
Internet: kellerer@informatik.tu-muenchen.de
Permission is granted to make and distribute verbatim and modified
copies of this document following the terms of the "GNU General Public
License" provided the copyright notice and this permission notice are
preserved on all copies.
The author gives *absolutely no* warranty that the answers given
here are correct or usable. Many of them were contributed by other users
and I cannot even make marginal checks. If you think that something
should be changed, please tell me. Suggestions, contributions, new
answers, critics, flames (oh, how I like this `nil:' :-) are rather
welcome. See Contributions.
1 CPU, Custom chips, RAM and other stuff
****************************************
This chapter contains questions concerning the Amiga-Hardware.
1.1 What are 68EC020, 68EC030 and 68LC040?
==========================================
Motorola, the company producing the 680x0 family offers crippled
versions of their processors. They are a little bit cheaper than the
originals, that's why Commodore decided to build the 68EC020 into the
A1200 and the 68EC030 into the A4000/030.
The difference between the 68020 and the 68EC020 is that the latter
can address just 16Mb of memory. That's why the A1200 cannot have more
that 10 Mb RAM. In most cases you will not notice the difference.
This is not the case for the 68EC030: Many owners will notice that
the 68030 has an MMU and the 68EC030 doesn't have. There are some
important programs depending on an MMU, for example Enforcer (a
debugging utility), GigaMem (a program to emulate virtual memory) or
all current Unix versions (see Unix). Other Amigas than the A4000 and
the A3000 need an additional processor card using a 68030 or 68040 or
68060 to run these.
Finally the 68LC040 is a 68040 without FPU. See FPU.
1.2 What's an FPU?
==================
The first 680x0 processors (upto 68030) could process integers only.
Floating point operations had to be emulated by the software. An FPU is
a chip (or part of a chip) that can process floating point operations, a
mathematical coprocessor.
One separates three FPU types on the Amiga: The 68881, 68882 and the
68040's internal FPU. The 68882 is up to 1.5 times faster than the
68881, because it is splitted in two parts: A conversion unit (the
FPU's are using an 80 bit format internally) and the arithmetic unit.
The 68040's internal FPU adds a pipeline, but misses the trigonometric
instructions of the others. These are still emulated by the software,
68040.library for example.
Special programs (Raytracing, DTP, Mathematics, TeX) are offered in a
special coprocessor version which are up to 50 times faster than the
original versions.
Michael Kaiser (kaiser@ira.uka.de)
1.3 Can I use a 3.5' HD in my A1200?
====================================
Many people would prefer to use a 3.5" instead of the smaller 2.5"
drives as the former are much cheaper. This is possible, but you need a
special cable to connect the drive to your IDE controller. Additionally
you should put some isolating material between the drive and the main
board. Some people report termic problems but I did not notice anything.
Some dealers offer a set which contains the cable, isolating material
and for about 20$. See the magazines for more information.
Thomas Schuh (thomas@stepout.tynet.sub.org)
If you are going to install an IDE-harddisk, regardless if 2.5" or
3.5", you should always consider that the it may not work flawlessly,
if the drive and ROM-version have not been tested and approved by
Commodore. Regarding the A1200, one should also remember that this
Amiga has not been designed to hold 3.5" harddisk drives. The 2.5"
drives, which are mainly thought for portable computers, may have some
advantages (for example in power consumption, heat emission or shock
resistance) that could pay off because of the small keyboard case of
the A1200 and the limited power supply. With the larger 3.5" drives,
ventilation inside the computer might also be disturbed. If it is
necessary to remove some shielding inside the A1200 to make the drive
fit inside, even radio interference may occur.
To sum it up: if 3.5" harddisk drives could really be used in the
A1200 without any problems, you could be sure Commodore themselves
wouldn't have used the slightly more expensive 2.5" drives in the
A1200-HD.
2 The Operating System
**********************
This chapter handles questions concerning the operating system,
Kickstart as well as the Workbench.
2.1 Can I use another Kickstart than the builtin?
=================================================
First let's drop some words on the Kickstart's Copyright: This
belongs to Commodore, you *must not* use Kickstarts, without the right
to do it! Especially it isn't allowed to make an image of anyone
else's Kickstart and run this on your own Amiga. (I even doubt that it
is allowed to do this on your own Amigas, if you have more than one.)
But of course it is possible and allowed for some people, developers
for example. There are two different ways, a hardware solution and a
software solution. The former is to buy a card which can hold two or
more Kickstart ROMS and allows to select between when the System is
booting.
The software solution needs a program (softkicker) and an image of
the ROM. The softkicker allocates RAM, loads the ROM image into the
allocated memory and reboots. Of course you have less RAM after the
Reboot: 256Kb when running Kickstart 1.2 or 1.3 and 512Kb for Kickstart
2.0 or higher.
There are different Softkickers, some of them needing a MMU (see
68EC0xx). I recommend SKick 3.43 (Aminet, directory `util/boot')
because it doesn't need a MMU and supports many different Kickstarts.
It is rather easy to create the ROM image using the following program:
#include <stdio.h>
#define kickorig 0xf80000 /* 0xfc0000 for Kick 1.2 und 1.3 */
#define kicklen 0x080000 /* 0x040000 for Kick 1.2 und 1.3 */
void main(int argc, char*argv[])
{
FILE *fh;
if ((fh = fopen("kickstart.file", "w")) != NULL) {
result = fwrite(kickorig, kicklen, 1, fh);
}
fclose(fh);
}
2.2 The Graphical User Interface
================================
Die standardmäßig mitgelieferte Oberfläche "Workbench" ist nur die
Grundlage zum Aufbau einer guten, angenehmen Oberfläche.
Zu diesem Zweck gibt es zahlreiche Tools, die den Anwendern das
Leben erleichtern. Einige von diesem findet man auf dem Aminet in den
Verzeichnissen `util/#?/'.
2.3 What is MUI?
================
MUI is a set of shared libraries which are used to build a
comfortable GUI (`Graphical user interface'). The general idea of MUI
is that the programmer determines only the logical structure of the GUI
and the look (Font, Size, Windows on Workbench, Public Screen, own
Screen, ...) is determined by the user only. From the programmers point
of view using MUI is simpler than `gadtools.library' but much more
powerful. On the other hand MUI interfaces are slower than
GadTools-Interfaces, especially on old 68000 machines.
MUI is found in two archives, one for developers only and one for
users. Source: Aminet, `dev/misc'.
2.3.1 Icon collections and Backgrounds
--------------------------------------
The standard icons aren't beautiful, indeed. But there do exist
some beautiful icon collections. I know of `MagicWB' and `NewIcons'.
`MagicWB' is Shareware. The icons are drawn beautiful in pastel with
every known trick. You also get a lot of good backgrounds which
beautify workbench windows and MUI programs. Fine and good readable
fonts replace the clumsy topaz8 font. You also get good icons for the
ToolManager. You can find a test version of MagicWB on Aminet.
`NewIcons' is Freeware. The icons do have relative intensive colors
and are drawn as three dimensional objects floating slanted in space.
You can find NewIcons on Aminet, `util/wb/NewIcons.lha'.
*F:*
How do I turn off the "Gag" of MagicWorkbench (the intro which
appears sometimes during booting)?
*A:*
In S: should be a file called `mti.data'. Delete it.
*F:*
How can I create NewIcons?
*A:*
The author of NewIcon currently works on an IconEd. Until then,
Iconian 2.9x (I3) is the only way to create NewIcons.
*F:*
How can I prevent MagicWorkbench Icons to appear in incorrect
colors?
*A:*
Register MagicWB 2.0, it contains a tool which patches the palette,
or get one of the different tools from Aminet.
*MagicColors*
*ShoveColors*
Its a good program, you can find it in Iconian, PictIcon or
`Aminet:util/wb/').
2.4 What is the Amiga equivalent of . (Current directory)?
==========================================================
The AmigaDOS equivalent for the . representing the current directory
on Unix and certain non-reentrant interrupt handlers is the empty
string, which is written as "".
Example:
COPY S:Startup-Sequence ""
copies your Startup-Sequence to the current directory.
There is some FD software available to patch a Unix-like
interpretation of . and .. into the AmigaDOS, including, but not
limited to, Martin Scott's UnixDirs. (Aminet,
`os20/util/UnixDirsII.lha' or Fish-disk 837)
Arno Eigenwillig (arno@yaps.dinoco.de)
2.5 The PIPE: queue-handler
===========================
In the AmigaOS release 2.04, a new handler for passing data between
programs was introduced. This handler is called `L:Queue-Handler',
better known as the `PIPE:' device.
`PIPE:' implements a true `pipe' familiar from UNIX systems. Its
function is to pass the output of one program to another program as
input. You can chain several programs together using multiple pipes.
The advantages of using pipes are:
1. No need for a lot of RAM to keep the temporary files, or, no need
to slow things down by storing temporary files on the HD.
2. Faster operation since the intermediate data doesn't need to be
stored anywhere between programs.
The `PIPE:' device differs from the UNIX pipes in two important
respects:
1. It is a device, so the input and output of the programs doesn't
need to be a redirected standard output, although that is the
general case. You can also use `PIPE:' instead of files, with two
restrictions; you can not read a directory from `PIPE:', and the
`PIPE:' `file' can not be `seeked' in.
2. It does not support a flush operation. If all of the data written
in a `PIPE:' device is not read out, it will stay there, buffered.
Thus you must always `empty' a pipe before closing it.
3. Because of the above, if unread data exceeds the size of the
`PIPE:' internal buffer, the program writing to the pipe will
`block' (that is, suspend operation) until the data is read. See
below on how to manually flush a pipe.
The PIPE: handler name syntax is `PIPE:name/bufsize/bufnum', where
`name' is the name for the pipe channel. Using names you can have
several simultaneous pipe operations. The optional arguments
`bufsize'and `bufnum' specify the size and number of the buffers used
by `PIPE:'. Normally, you would just use `PIPE:name'.
The default buffer size of `PIPE:' is 4096 bytes, and the number of
buffers (ie. channels) is unlimited.
Osma Ahvenlampi (Osma.Ahvenlampi@hut.fi)
2.5.1 Using PIPE: in a standard AmigaShell environment
------------------------------------------------------
First, make sure `PIPE:' is mounted. You can do this by giving the
command
1> Mount PIPE:
in a Shell window. On an AmigaOS 2.1+ system, `PIPE:' is normally
mounted on startup by placing the mount entry file `PIPE' in the drawer
`DEVS:DosDrivers'.
In an AmigaShell window, give the commands:
1> Run List SYS: >PIPE:Listoutput
1> More <PIPE:Listoutput
(1)
These two commands list the contents of the `SYS:' volume to a pipe
and then type it in the Shell window. You could also use:
1> Run List SYS: NOHEAD >PIPE:Listoutput
1> Run Sort PIPE:Listoutput PIPE:Sortedoutput
1> More <PIPE:Sortedoutput
Notice that you need to `Run' all the programs except for the last one.
This is so that you can get them all running simultaneously. You could
also use several Shell windows, or any other way of running all the
programs at the same time. Also this might not work if `More' isn't the
standard Commodore AmigaOS 2.04+ More found in `SYS:Utilities'.
In case you need to manually flush a pipe, for example because the
program that was reading from it aborts prematurely, it can be done
with the command:
1> Type PIPE:name TO NIL:
---------- Footnotes ----------
(1) Note that `1>' is the prompt AmigaShell gives when it is
waiting for a command. The number varies, and the prompt can be
customised to look completely different. It is not a part of the
command.
2.5.2 The Pipe command
----------------------
As you can see, this is a somewhat difficult way of using pipes,
needing a lot of typing especially compared to the UNIX pipes. There is
a solution for that.
Andy Finkel, a former Commodore software engineer wrote a command
called `Pipe' (not to be confused with `PIPE:') that simplifies the use
of the `PIPE:' device. Unfortunately, this command did not make it into
the 2.04 release. However, Commodore has given the permission to
distribute this, and a few other commands, freely. (Sources: Fish disk
673, Aminet, `util/cli/finkelshelltools.lha')
For some reason Commodore did not include these commands in the later
OS releases, although they work fine even with OS 3.1 (V40). Thus all
users are required to get them from the above sources if they wish to
use them.
The Pipe command usage is simple. The commands to be run with their
inputs and outputs piped together are given as arguments to the
command, separated by the | (vertical bar) character:
1> Pipe List SYS: | More
or
1> Pipe List: SYS: NOHEAD | Sort IN: OUT: | More
Notice how Sort needs `IN:' and `OUT:'. These devices don't actually
exist, but the Pipe command simulates them with the PIPE:. This is
necessary because C:Sort can not use the `standard IO', but insists on
files.
The separator character | can be configured to be something else
with the local variable __PCHAR.
2.5.3 Pipe command support in AmigaShell
----------------------------------------
There is a little known and quite useful undocumented feature built
in the 2.04+ AmigaShell, that is, AmigaShell knows about the `Pipe'
command. By setting the local variable _PCHAR, you can use pipes
without even entering the Pipe command. AmigaShell will prepend it on
the command line automatically if it sees the pipe separator command
specified by _pchar on the command line.
Thus, after the command:
1> Set _pchar "|"
(1)
the above examples can be used like this:
1> List SYS: | More
or
1> List SYS: NOHEAD | Sort IN: OUT: | More
Those familiar with the UNIX pipes will notice how the usage is very
similar to the UNIX pipe usage.
---------- Footnotes ----------
(1) The quotes around the vertical bar are important, to avoid
AmigaShell interpreting the command as an attempt to use PIPE:, if
_PCHAR is already set (for example if the Shell is started from within
another one).
2.5.4 Quick usage guide
-----------------------
1. Get the ShellTools archive from the Fish disk 673, or from Aminet,
`util/cli/hacks204.lha'.
2. Install the commands in this archive in your Shell search path,
preferably C:.
3. Put the command `Set _pchar |' in your `S:Shell-Startup' file.
4. Restart your AmigaShell so that it reads the `S:Shell-Startup'.
5. Try `List SYS: | More'
6. Read the ShellTools documentation and experiment.
2.5.5 Related things
--------------------
The variable _mchar is used to separate one command from another in
a shell line. So, after the command:
1> Set _mchar ";"
you can put more shell commands into the same line, separated from
each other by `;'.
2.5.6 Troubleshooting
---------------------
*Q:*
When I try the command `List SYS: | More' I get an error
PIPE: Unknown command
I have `PIPE:' mounted, what's wrong?
*A:*
AmigaShell is referring to the command `Pipe' in the error, not the
`PIPE:' device. You haven't installed the commands in the
ShellTools archive.
*Q:*
I get a requester that says
Please insert volume PIPE: in any drive
when I try any of the command examples.
*A:*
`PIPE:' is not mounted. Try `Mount PIPE:'. If that doesn't work,
refer to your AmigaDOS manual or a friend that knows how to mount
devices.
*Q:*
When I try any of the examples the More window pops up but nothing
is shown/I get an error afterwards/More pops up a file requester.
*A:*
You are not using the standard AmigaOS `More' command. Either use
another name or install a command that supports pipes.
Possibilities are the C= More, Less, or Most for example.
*Q:*
With use of PIPE:, sometimes characters get lost. What happened?
*A:*
Up to OS 3.1, the queue-handler has some bugs which don't allow a
really foolproof transmission of data. A compatible replacement
for the queue-handler can be founbd on Aminet,
`util/sys/HWGQueue.lha'.
*Q:*
None of these happen but it still doesn't work as you described.
*A:*
Are you using OS 2.04 later? Are you using the standard AmigaShell?
Try with all extras disabled.
2.6 ARexx, the program control language
=======================================
*Q:*
I want to send an ARexx command through CLI or through a shell
script, but that (rx ADDRESS PORTNAME;COMMAND) doesnt work.
*A:*
You have to put quotation marks. (rx "ADDRESS PORTNAME;COMMAND").
It also prevents upcasing the portname when it should be lowercase.
3 How about Graphics?
*********************
Graphics is one of the major strengths of the Amiga. Why don't we
have more answers here? :-(
3.1 What are chunky and planar displays?
========================================
Simply put, the terms `chunky' and `planar' (short for `bitplanar')
refer to different ways of storing graphics information in a computer's
memory. They are rather easy to understand, as far as things go, but
incredibly difficult to explain:
Computer images are arranged as a grid of pixels, each of which can
be thought of as a number representing the color number of the pixel,
sort of like a paint-by-numbers scheme. For example, here's a
simplified example image, in four colors:
00302132
The Amiga stores this image in a `bitplane' mode. That is, it is
represented by several planes of bits (binary digits, 1s or 0s). This
is a four-color image, so each color number could be represented by two
bits. Therefore there are two bitplanes:
00100110 Here's bitplane 0
00101011 And here's bitplane 1
-------- Now, let's add them up, binary style:
00302132
Which is the final image. If the image was in two dimensions, it
would truly be composed of bit planes. However, I'd need three
dimensions to show multiple bitplanes overlayed, and therefore for
simplicity we're working in one dimension (which is all we need).
Now, there's another way of storing this image. How about if we
localize the bit data in little chunks?
00 00 11 00 01 10 11 01 = 00302132
This is the principle of the `chunky' pixel mode.
Both methods of image storage are perfectly logical, and no one can
say that one is better than the other. However, there are certain
technical aspects which cause certain advantages and disadvantages.
First, if you've seen colored text scroll on your Amiga, you know
there is a bit of "flicker" that arises. Specifically, what happens is
that while the text is scrolling, its color temporarily changes to
something completely different. What's happening is that the computer's
moving several bitplanes of data while the raster (monitor electron
gun) is sweeping across the screen. What that means is that, if the
raster catches the data while it's being moved, you can end up with some
bitplanes being moved and some not. What if we filled bitplane 1 in the
example above with 0s? Instantly all the 3s become 1s, and the 2s
become 0s! This is what causes "flicker" when certain colors are
scrolled. By contrast, if a chunky pixel display is caught while
scrolling, all we see is a partially-scrolled image; the colors are
preserved (since their units are the small ones).
That's a disadvantage to planar pixels, but what about chunky pixels?
Well, recall that a computer organizes information in terms of 8 bit
bytes. These groups are static; you cannot decide to all of a sudden
organize data in terms of three bytes or something! Therefore, when
using chunky pixels, things get complicated if we decide to use a
nonconvenient number of bits per pixel. In practice, the 8-bit
(256-color) mode, and 24-bit (16 million color) modes are the most
common candidates for chunky pixel displays.
Finally, certain effects can be accomplished with the different
systems. Bitplanar mode is particularly useful for things like shadows
(where an extra bitplane is set with 1s instead of 0s), and chunky mode
is great for perspective and "mapping" (since the data for each pixel is
localized in a single "chunk"). The latter advantage makes chunky pixel
mode really great for games, and is what made Wolfenstein 3-D possible.
We all know that Amigas use the bitplane system for storing images.
However, the Macintosh and PC(VGA) both use chunky pixel modes. While
we can optimize our RAM usage with "bizarre" modes like 8- and
128-color, they gain the advantages of non-flicker scrolling, and the
programming simplicity of just writing a byte where you want the pixel
to go.
The difference between the two modes becomes problematic in things
like emulation. EMPLANT has a "chunky to planar" routine which it uses
to convert a Macintosh display into an Amiga one. "Chunky to planar"
routines are also useful for getting chunky-inclined things to run on
Amigas (see TMAPDemo, rotdemo). On a side note, there was some
confusion as to what EMPLANT used the MMU for with regard to chunky to
planar. The MMU itself is incapable of performing the algorithm for the
conversion; rather, it is used to detect what portions of the display
memory are updated from the Mac side, and therefore the processor is
saved from having to perform the chunky to planar conversion for the
entire display.
I sincerely hope that helped clear up most of the mystery concerning
the terms "Chunky" and "Planar"!
(Joseph Luk, jluc@eis.calstate.edu)
3.2 What is doublebuffering?
============================
Don't be ashamed if you haven't a clue as to what this is. It's
rather simple, really. Imagine you wanted to animate something by
drawing out each frame. Now imagine you had only one piece of paper.
Even if you drew pretty fast, it would be difficult to see what the
animation looks like because you'd have to erase the frame you just
drew, in order to draw the next one!
What if you had two pieces of paper? Why, then, you could see the
difference between two adjacent frames. First you'd draw your first
frame on the first piece of paper, then you'd draw the second frame on
the other piece. Then you'd erase the picture on the first piece of
paper, and draw in the third frame. Then you'd erase the picture on the
second piece of paper, and draw in the fourth frame, and so forth.
This is the principle of doublebuffering. The computer shows you the
picture it just drew, then turns around and draws the next one. It then
swaps the picture in front of you with the one it just drew, and
repeats the process. The result is a smooth animation, because you
never need to see the computer draw; all you see is each finished
product.
(Joseph Luk, jluc@eis.calstate.edu)
3.3 What monitors will work on my Amiga 1200/4000?
==================================================
Monitors can be classified after the horizontal scan frequency they
require. TVs, as well as C='s 1084 monitor, need frequencies around 15
kHz. VGA/SVGA need approx. 30 kHz. Multisync monitors can take many
frequencies.
In short: You can use any monitor you want with an A1200. BUT:
- If you use a regular VGA/SVGA monitor, you can only use a few
display modes (like DblPAL, DblNTSC and/or Productivity). I.e.
(320|640) x (256|512|1024) for DblPAL. This is great for Workbench
and all "serious" utilities (DTP etc), but don't expect any games
to work... they don't use your preferences, just take over the
machine and assume a 15 kHz monitor. Also, you cannot utilize the
"Early Startup Control" screen (you know, disable cache, and that
stuff), which also requires a 15 kHz monitor. Furthermore, VGA
monitors don't have speakers. And the VGA-type modes don't support
Genlocks. But for a lot of "serious" work, a VGA monitor is quite
adequate.
- You already know what happens with a 15 kHz monitor; the
flickering in Interlace mode. A small tip: Try to use NTSC instead
of PAL. This increases the refresh rate from 25 Hz to 30 Hz, at
the expense of lower vertical resolution (482 lines maximum). The
NTSC and PAL modes aren't as bad as many people think. If your
monitor has a lot of phosphorous (long afterglow), PAL Laced can
be quite OK, and it gives you a resolution of 1448x566 in
SuperHiRes. That's the highest resolution currently supported on
AGA Amigas, in _any_ display mode.
- A Multisync gives you the best of both worlds. The 1940 and 1942
monitors from C= are quite OK, although rather cumbersome to
use... The h/v size and offset must be set manually each time you
switch display mode. (1) The 1960 monitor doesn't have this
problem, but it's a bit more expensive.
For a VGA/SVGA or Multisync monitor, you'd need a little shiny box
which gives you the standard 15-pin "D" connector. It costs around $15.
There are other alternatives... like the "AmiVGA" box ($50 or so),
which I think is a cheapo version of the Flicker Fixer. (But it's
really a shame to use this on an AGA Amiga.)
Also, you can get a VGA monitor, and hook up your TV to the
composite or RF port on the Amiga - one monitor for games, one for
serious stuff.
(Per Espen Hagen, per.e.hagen@ffi.no)
---------- Footnotes ----------
(1) A patch is available on Aminet for Kickstart 3.0 to do this
without manual actions in the file `os30/util/Monitor30Patch.lha'.
3.4 How do I switch between PAL and NTSC?
=========================================
PAL and NTSC are two different video standards, the former being
European, and the latter being American. PAL has a slightly taller
screen (256 lines non-interlaced, non-overscanned) as opposed to NTSC
(200 lines), so if you see the bottom portion of a program's screen
getting cut off on your American machine, chances are the program was
written for PAL, and is running on your shorter NTSC screen. PAL and
NTSC differences are somewhat less important to European users; since
their machines default to PAL, running an NTSC program is no more than
a minor annoyance having the screen only appear in the top portion of
the display.
Therefore, for us NTSC folks, switching into PAL mode becomes
important to avoid loss of some picture on Euro Demos, etc.
First, the most common misconception about switching between PAL and
NTSC is that you need a Multiscan or special monitor for such a purpose.
Not so! Just about any monitor can handle the minor signal difference
between PAL and NTSC (50Hz vertical refresh versus 60Hz). The 108x,
19xx, and 20xx series, and even most TVs, can display both PAL and NTSC.
Sometimes it is necessary to perform minor tweaking of vertical hold
and/or v. size on your monitor to achieve full display, though this is
trivial.
What IS needed to switch between PAL and NTSC in software, is a
"Fatter" (1MB) Agnus or better. If your system has more than 512K of
CHIP RAM (use the avail command to find out) you have this chip. If you
do not, ou can still construct a hardware switch (see below).
The following directions assume you're an NTSC user who wants to
switch into PAL mode, but the procedure for going from PAL to NTSC is
much the same.
The most common use of switching into PAL is for self-booting games,
demos, etc. The best way to accomplish this on pre-3.0 systems is to
use Chris Hames' Degrader program (most recent version: 1.30). Once you
have procured this program, the switch is as simple as selecting
"50Hz", and "50Hz System", then installing the program's ROMTag (little
program that runs at boot-time) by pressing the "Survive Reset(s)"
button.
AmigaDOS 3.0 added a PAL/NTSC switch feature to its Boot Menu, and
all you need to do in order to access this is hold down both mouse
buttons as the computer boots. Select Display Options, Display
Mode/PAL, and then Boot. If the program still fails to go into PAL mode
(Zool is one I've found), you may wish to get Degrader anyway and try
that.
Software PAL/NTSC switching is easy and painless. Some people have
gone even further by installing hardware PAL/NTSC switches. This
results in a system which even the most nasty hardware-banging programs
can't bring to its original configuration (if it has been switched).
The procedure is simple - most Amigas have jumpers already - but beyond
the scope of this document.
Therefore, if your screen is too short or cut off, seek the different
screen mode. You'll "see new horizons", literally!
(Joseph Luk, jluc@eis.calstate.edu)
(1)
---------- Footnotes ----------
(1) PAL/NTSC switching with a MultiSync monitor is possible on 2.0+
and easily accomplished by moving the PAL monitor type to (or NTSC, as
applicable, I have them both in) the Devs/Monitors drawer (from the
Storage/Monitors drawer), reboot, then go into the Prefs drawer and
select the ScreenMode program. You will see at least two PAL modes
available (PAL and PAL Interlaced). Simply select one of the (usually
non-interlaced for demos) and select "Use". All windows on the Workbench
will close, the video mode will change, and then the windows will
reopen - that simple!
Allen J. Newton, anewton@alturia.abq.nm.us
4 Programming
*************
This chapter handles problems arising for programmers and
compiler-users only.
4.1 What documentation do I need as an Amiga programmer?
========================================================
The best information available are the RKMs (ROM Kernel Manuals), 3rd
edition, by Commodore, published by Addison-Wesley:
The Amiga ROM Kernel Manual: Libraries, ISBN 0-201-56774-1
The Amiga ROM Kernel Manual: Devices, ISBN 0-201-56775-X
The Amiga ROM Kernel Manual: Includes and Autodocs, ISBN
0-201-56773-3
The Amiga Hardware Manual, ISBN 0-201-56776-8
The Amiga User Interface Style Guide, ISBN 0-201-57757-7
Especially the RKM: Libraries is a must. The RKM: Includes and Autodocs
isn't that much worth: Better get the same stuff on disk instead to
have it online. See Includes.
AmigaDOS isn't included in these books. The Autodocs give much
information, but to go deeper you probably need
The AmigaDOS Manual, 3rd Edition, ISBN 0-553-35403-5
published by Bantam Books.
A better choice for developers is
The Amiga Guru Book
by Ralph Babel. The book starts with a survey on different aspects of
programming the Amiga. (About 250 pages) Useful for beginners are the
sections on the Amiga's data types (not to be confused with the 3.x
DataTypes used by MultiView, for example), the Includes and the
amiga.lib. But even experienced programmers will find useful things
here that are missing in the RKMs. But the largest part are about 500
pages on AmigaDOS and, as I think, the most important, because AmigaDOS
is the worst officially documented part of the OS. The book is rather
concise and hence not as easy to read as the RKMs, but I recommend it
as an addition and instead of the AmigaDOS manual. (Not, however, a
replacement for the Libraries and Devices, which aren't covered here.)
Unfortunately the book has no ISBN and is available in special stores
only. But there are some mail order companies which offer it for about
50$ and which accept credit cards:
Almathera Systems Limited
Southerton House
NBG USA, Inc. Boundary Business Court
482 Holly Avenue 92-94 Church Road
St. Paul, MN 55102 Mitcham, Surrey CR4 3TD
USA England
Voice: +1 (612) 290 9447 Voice: +44 181 687 0040
Fax: +1 (612) 290 9449 Fax: +44 181 687 0490
E-Mail: <almathera@cix.compulink.co.uk>
Stefan Ossowskis Schatztruhe
Hirsch & Wolf OHG Gesellschaft für Software mbH
Mittelstraße 33 Veronikastraße 33
D-56564 Neuwied D-45131 Essen
Germany Germany
Voice: +49 (2631) 8399-0 Voice: +49 (201) 788778
Fax: +49 (2631) 8399-31 Fax: +49 (201) 798447
E-Mail: <stefano@tchest.e.eunet.de>
Someware
27 rue Gabriel Péri
59186 Anor
France
Voice: +33 27596000
Fax: +33 27595206
E-Mail: <didierj@swad.someware.com>
See FAQs.
4.2 What is CATS?
=================
This is a department at Commodore West Chester which was formerly
named `Commodore Amiga Technical Support' and was later renamed
`Commodore Application and Technical Support'. These are people that
work independently of Engineering, but close together with them, and try
to help developers outside of Commodore to create nice Amiga
applications, software or hardware. To achieve this, CATS has gathered
a lot of informations and tools, on floppy, CD, or paper. Much of this
material is also available to the general public. (1) But don't mix
this up with some sort of Hotline for everyone!
For Americans the address to get this material is
CATS
Commodore Electronics Limited
950 Rittenhouse Road
Norristown, PA 19403
for all Europeans it's a company in Germany:
Fa. Hirsch & Wolf
Mittelstr. 33
56564 Neuwied
Tel. 02631/83990
Dr. Peter Kittel, peterk@cbmger.de.so.commodore.com
---------- Footnotes ----------
(1) Which means: For Non-Developers.
4.3 Where do I get the Amiga includes?
======================================
The only legal way to get the includes and autodocs (and you *should*
get them, they are *very* useful!) is to become a developer (see
Developer) or to buy the `NDU' (Native developers update kit, also
known as `NDUK' or `NDK'), which is offered by CATS. They cost about
30$ plus shipping and this seems to me to be a fair price. See CATS.
The current version is 3.1.
If you need only the includes, you could get them as well with a
compiler (commercial compilers only) or by getting the Fresh Fish CD.
See Fish CD.
4.4 How do I become a developer?
================================
You need the `ADSP' (Amiga Developer Support Program) documents. To
get this write a letter to your local Commodore branch asking for these
documents. Everything else should be explained there. The german
address (for the US address see CATS) is
Commodore
Lyoner Strasse 38
60528 Frankfurt
There are three different developer versions:
*Registered*
developers get access to the CBMNET (kind of a Commodore-internal
Usenet), which makes it possible to discuss problems with other
developers, Commodore engineers included. Registered developers
pay about US$80 per year, plus initial US$30 initially.
*Certified*
developers seem to me the most interesting claass: They have the
possibility copy the most beta versions of the system software
(Kickstart and Workbench) and the respective Includes and
AutoDocs. (Not all beta versions and especially no beta hardware.)
You pay about US$250 per year plus US$50 initially for this.
*Commercial*
developers finally have in most details the same as certified
developers, but may expect to get more beta versions and sooner,
included beta hardware (This has *not* always been so in the
past.), hencethey pay about US$400 plus US$50 initially.
The above describes the prices and the situation in Germany and might be
different elsewhere. Especially not all Commodore branches offer the
registered status. A hint is to build a group of users and become a
developer group, so the costs are reduced.
All developers have to sign non-disclosure agreements (`NDA') which
specify that we may not discuss information outside of authorized areas
even to other developers until given explicit permission by Commodore.
4.5 What compilers (assemblers) are there?
==========================================
There is a lot of programming languages on the Amiga, commercial as
well as freely distributable. I will enumerate only those that I know
or which seem it worth to me otherwise.
*Assembler*
All C-compilers have an Assembler included. Freely distributable
are A68K and PhxAss (directory `dev/asm' on Aminet or Fish disks
521 and 906)
Commercial Assemblers are MaxonASM, OMA3.0 and DevPack3.14.
*Basic*
The following commercial Basic-compiler/interpreter are available:
BlitzBasic2, Amos and MaxonBasic3.
*C*
*C++*
Freely distributable C-compilers are `gcc' (which has its own
directory `dev/gcc' on Aminet) and the evaluation version of
`Dice' (for example per FTP from `ftp.uni-paderborn.de', directory
`/news/comp.binaries.amiga/volume91/languages' or on Fish disk
491). The advantage of gcc is that you find gcc versions all over
the world and on all computer systems. Another advantage is that
C++ is included into gcc! But it is slow and needs 4Mb of RAM or
more. See The GNU C compiler. See Mailing lists.
Commercial C compilers are `Aztec-C', `Dice', `SAS/C' amd
`MaxonC++'. `Aztec-C' doesn't seem to get further development any
more. It should be remarked that the commercial compilers have
especially wonderful debugging utilities (Source level debuggers!)
that the others are missing.
SAS has announced to drop support of the Amiga-Compiler, too, due
to the Amiga's bad situation. However, the compiler is still
available and up-to-date and has a crosscompiler included, which
translates C++ to C and supports the source level debugger too.
Considering the price of just 99$ for students and updates from
recent versions or other compilers it is still the most
recommendable of the three. In europe the compiler is available
from
SAS Institute, Inc. SAS Institute Gmbh
Book Sales PO Box 10 53 40
SAS Campus Drive 69043 Heidelberg
Cary, NC 27513 Germany
USA
Phone: (919)677-8000 Phone: (49)6221-4160
EMail: sasdsb@vm.sas.com EMail: eurdoc2@vm.sas.com
Dice is the cheapest and fastest commercial compiler. The greatest
disadvantage of Dice (compared to the other commercial compilers)
is the so-called Source-Line-Debugger: This means that you see the
current line of source and can execute the program step by step,
like with the other debuggers. On the other hand you can examine
memory only, not the variables. To get information about DICE,
send email to info@oic.COM. An automatic system will return
complete details, including upgrade prices.
Comeau C++ is a crosscompiler like SAS/C++. That wouldn't be a
problem, but Comeau C++ doesn't have a C compiler included. You
need SAS/C, Aztec-C or Dice additionally. But it is AT&T cfront 3.0
compliant and supports exceptions. And like gcc it runs on many
platforms. Maxxon C++ is offered in Germany. I cannot say
anything on it. Both compilers are commercial. Comeau's address is:
Comeau computing
91-34, 120th Street
Richmond Hill, NY, 11418-3214
USA
EMail: Greg Comeau, comeau@bix.com
Maxon C++ is both a C++ and a C compiler. There is a light version
and a developer version. The developer version matches the AT&T
standard 3.0. Maxon-light includes a compiler and a editor.
Developer includes a source level debugger, Amiga classes library
and Hot Help with documentation to the amiga libs. It is a german
product, and compiler and documentation are german. The compiler
has some little bugs, but you can work with it well, anyway.
*Forth*
JForth is said to be an excellent Amiga port of Forth. Among its
advantages are object oriented extensions, full Amiga interface
and an application generator. It is available from:
Delta Research
P.O. Box 151051
San Rafael, CA 94915-1051
Phone: (415) 453-4320
EMail: Phil Burk, phil@ntg.com
Mike Haas, haas@starnine.com
*Fortran*
(Sigh! Still people who need it :-<) Freely distributable are BCF
(Fish disk 470) and f2c, a Fortran to C converter (Aminet,
directory `/dev/lang'). A commercial compiler is offered from
ABSoft. All these are Fortran 77 compilers, I don't know any
Fortran 90 compiler on the Amiga.
*Lisp*
Freely distributable Lisp interpreters are XLisp (Fish disk 181)
and OakLisp (Fish disks 519 and 520) and CLISP
(`/pub/lisp/clisp/binaries/amiga' at the server `ftp
ma2s2.mathematik.uni-karlsruhe.de'). Lisp compilers are Gambit
(Fish 764 and 765) and Scheme-to-C (Fish disks 556, 557 and 558).
See Mailing lists.
*Prolog*
`/dev/lang/UNSWProlog.lha' and `dev/lang/sbp3_1e.lha' on Aminet as
well as `SBProlog' on Fish disk 141 and `SBProlog' on Fish disk
145 are freely distributable Prolog interpreters.
*Modula-2*
M2Amiga is offered in Europe, Benchmark Modula-2 in the U.S. Both
are said to be very good, have a powerful source-level-debugger, a
large library. Especially M2Amiga has great support by a german
user-group (AMOK) which for example offers own PD disks. See
Mailing lists.
M2Amiga is offered by:
A+L AG
Daderiz 61
2540 Grenchen
Schweiz
Tel.: +41/65/52 03-11
Fax: -79
Benchmark Modula-2 is available from:
Armadillo Computing
5225 Marymount Drive
Austin, Texas 78723
USA
Phone/FAX: 512/926-0360.
EMail: Jim Olinger, jolinger@bix.com
*Oberon*
*Oberon-2*
Two compilers (both Oberon-2) are available: AmigaOberon
(commercial) is offered by the same company as M2Amiga. It is
integrated into a full developers environment and has a large
library of modules. Library linker and source level debugger are
available.
Oberon-A is a Freeware compiler. (Source: Aminet, `dev/obero'
directory) However, this is a beta release, especially the module
library is limited. See Mailing lists.
The AMOK user group supports AmiOberon as well as M2Amiga.
In addition to these two standalone compilers which are thought
mainly for creating AmigaOS applications, there is an Amiga port of
the Oberon Sytem V4, too. The Oberon System is implemented as an
AmigaOS-Task using a separate screen and includes an Oberon-2
compiler. You can use it to write software that will work on all
implementations of the Oberon System V4 (for example Macintosh,
Windows or Sparc) without any changes.
*Pascal*
There is a PD-compiler called PCQ (Directory `dev/lang' on Aminet
or Fish disk 511). It doesn't support all of Pascal and major
features are missing. P2C, a pascal to C converter is on disk 341.
(Aminet: `/dev/misc/p2c120.lha') Additionally there are two
commercial compilers called HiSoft Pascal and KickPascal. HiSoft
Pascal and P2C claim to be compatible to Turbo Pascal up to 5.0.
HiSoft has a source level debugger included.
4.6 Those never working Esc sequences!
======================================
Many printers come with a manual that explains which Esc sequence
causes which action on the printer. But there happen weird things when
you try to send these sequences to your printer, either it does
nothing, or it does something completely different. There is a reason,
the Amiga printer drivers. These drivers are made in a way that they
only understand a certain set of `ANSI Esc sequences', not the special
ones defined (differently) by the various printer manufacturers. The
purpose is that every application on the Amiga just uses this one
standard set of control sequences and this way doesn't need to know
which printer is actually connected. The printer driver then translates
these standard sequences into the special sequences a certain printer
understands. A list of the available ANSI Esc sequences is found in
the current Workbench manuals (or older AmigaDOS manuals). Now if you
want to issue a control sequence to the printer that's not available as
an ANSI command, you have two possibilities to achieve this:
1. Bypass the printer driver (that would unsuccessfully try to
interpret the sequence) and send your output *only* during this
sequence to `PAR:' (or `SER:', respectively). For this you have to
close and open printer output channels very often which is rather
tedious, and you have to know where (`PAR:' or `SER:') your
printer is connected.
2. Use a special ANSI sequence, made exactly for this case:
`Esc[<n>"<x>'
where `<n>' is the decimally typed number of bytes in the string
`<x>', which actually contains your special printer sequence. This
ANSI sequence tells the printer driver to not interpret or
translate the next `<n>' bytes.
But both methods have one big disadvantage when used in an
application program: You lose the printer independency! If you stick to
ANSI sequen- ces, you can output to any printer on earth, as long as
there is an Amiga printer driver for it. If you start to use special
control sequences, your program will be tied to this single printer
model and will not be usefull for any other (or you would have to
provide some dozen new printer drivers for your application).
Dr. Peter Kittel, peterk@cbmger.de.so.commodore.com
4.7 Is it possible to use AmigaBasic on the A1200?
==================================================
AmigaBasic wurde (als einziges Amiga-Programm) von Microsoft
entwickelt und ist entsprechend fehlerhaft.
Man kann es auf dem A1200 trotzdem zum Laufen bringen, wenn man
folgendes beachtet:
1. run NoFastMem (or turn off FastMem).
2. Switch off sound output in the Sound prefs editor.
3. Better avoid SUBs and use GOSUBs instead, then the compatibility
with newer processors will be higher.
4. There is a patch you should run at the beginning of AmigaBasic:
---------------------------------- CUT HERE -------------------------------
`" AmigaBASIC patch to let AmigaBASIC work on A1200 and other newer machines.
`" Start at the beginning of AmigaBASIC or invoke AmigaBASIC with this program
OPEN "AMIGABasic" AS 1 LEN=1
FIELD #1,1 AS d$
i&=&HF3*256+&H87 : PRINT i&
GET #1,i& : a$=HEX$(ASC(d$))
PRINT a$
IF a$="79" THEN
LSET d$=CHR$(&H78)
PUT #1,i&
END IF
CLOSE 1
---------------------------------- CUT HERE -------------------------------
Andreas Mixich, humpty@tomate.tng.oche.de
4.8 How do I localize my program?
=================================
Suggest, you want to write a `HelloLocalWorld.c'. Your final program
will look like this:
#include "HelloLocalWorld_Cat.h"
#include <clib/exec_protos.h>
struct Library *LocaleBase;
void main(int argc, char *argv[])
{
/* Open the locale.library. No kill, if not successfull.
(Just use the builtin catalog strings instead.) Note, that
we open locale.library here, even if our compiler supports
AutoOpening.
*/
LocaleBase = OpenLibrary("locale.library", 38);
OpenHelloLocalWorldCatalogs(NULL, NULL);
printf(GetString(MSG_Hello));
CloseHelloLocalWorldCatalog();
if (LocaleBase) CloseLibrary(LocaleBase);
}
The routine GetString checks, if the wished catalogs are available
and returns a pointer to either the builtin string or the catalog
string. (In my case the german string.)
You see, the main difference besides the minor opening and closing
stuff (OpenLibrary, OpenHelloLocalWorldCatalogs, ...) (which too can be
dropped, too, with FlexCat) is to replace strings with a function call.
Hence we need a file `HelloLocalWorld_Cat.c', which holds
OpenHelloLocalWorld, GetString, CloseHelloLocalWorld and the builtin
strings (this could be an array, where
array[MSG_Hello] = "Hello, local world.\n";
is defined) and an include file `HelloLocalWorld_Cat.h', which defines
the message ID's like MSG_Hello. You don't need to know, how these files
work internally, especially you don't need to know `locale.library'!
There are some catalog generators (in what follows: CGs) available
(`CatComp', for devlopers only, `KitCat', german docs only, `MakeCat',
which I don't know and `FlexCat', which I recommend, because it is
most flexible in the generated source and supports catalogs on 2.0 and
any language, even Amiga-E, Cluster, Pascal, ... and besides that: I'm
the author ;-) are tools, that create HelloLocalWorld_Cat.h,
HelloLocalWorld_Cat.c and the real catalogs for you. (The above code
might differ slightly between the different CGs.) (See Aminet, directory
`dev/misc'.)
Of course they need to know how to use them. First create a so-called
`catalog-description' file. This could look like this:
; Lines beginning with a semicolon are comment lines.
# language english
; the language of the builtin strings
# version 0
; the catalog version (0 = any)
MSG_Hello (1/15/30)
Hello, local world
Any string is defined by a line like the last two lines above: MSG_Hello
is the message-ID, (1/15/30) says, that the value of MSG_Hello should be
1 (you may omit this, in which case just the next free number is used)
and the string must not be shorter than 15 characters or longer than 30
characters. (These may be omitted too.)
Now write your program. Once you are ready, use the CGs to create a
so-called catalog translation file. (One for any language different than
the builtin.) In my case (german) this could look like this:
; Lines beginning with a semicolon are comment lines.
## language deutsch
; the catalog language (german)
## version $VER: Deutsch.catalog 1.0 (22.12.93)
; the catalog files version string
MSG_Hello
; Hello, local world
Note the empty line after the message ID. (The arguments of ## language
and ## version would be missing as well.) You have to fill in the
german strings here. Again using the CGs you create a catalog file from
this. Additionally note, that no informations on the strings ID or
length are behind MSG_Hello. They are taken from the catalog
description file.
Once you change the program (adding strings, changing the string
length) you change the catalog description as well, use the CGs in the
same way to update the catalog translation and hence the catalogs.
4.9 How to obtain a pointer to a console's window
=================================================
The following function returns the window pointer of a CON window.
It can be executed safely under all versions of the Amiga's OS.
struct Window *getConWindowPtr(BPTR fh)
{
struct Window *w;
struct FileHandle *cfh;
struct StandardPacket *sp;
struct InfoData *id;
struct MsgPort *mp;
w = NULL;
if ((cfh = BADDR(fh))->fh_Type != NULL) {
if (sp = AllocMem(sizeof (struct StandardPacket),
MEMF_PUBLIC | MEMF_CLEAR)) {
if (id = AllocMem(sizeof (struct InfoData),
MEMF_PUBLIC | MEMF_CLEAR)) {
if (mp = CreatePort(NULL, 0)) {
sp->sp_Msg.mn_Node.ln_Name = (char *) &sp->sp_Pkt;
sp->sp_Pkt.dp_Link = &sp->sp_Msg;
sp->sp_Pkt.dp_Port = mp;
sp->sp_Pkt.dp_Type = ACTION_DISK_INFO;
sp->sp_Pkt.dp_Arg1 = MKBADDR(id);
PutMsg(cfh->fh_Type, &sp->sp_Msg);
(void) WaitPort(mp);
(void) GetMsg(mp);
if (sp->sp_Pkt.dp_Res1)
w = (struct Window *) id->id_VolumeNode;
DeletePort(mp);
}
FreeMem(id, sizeof (struct InfoData));
}
FreeMem(sp, sizeof (struct StandardPacket));
}
}
return w;
}
Notes:
* Accessing a console's window directly may interfere with operations
performed by the CON handler. Be careful!
* To obtain the window pointer of a CLI's console, pass the
FileHandle returned by Open("*", MODE_OLDFILE) to the above
function.
* The result of the above function may well be NULL, e.g. in case of
an AUX handler or if an AUTO CON handler is unable to open its
window.
* Sending an ACTION_DISK_INFO packet to an AUTO CON handler (2.0+)
causes its window to lose its special AUTO properties (i.e. it can
no longer be closed at any time by clicking on its Close gadget),
as the window pointer returned in id_VolumeNode must remain valid
from now on.
* All in all: Don't use this function. :-)
For more information, please refer to pages 273, 276, 435, 463, 485,
and 629 in "The Amiga Guru Book" (see Manuals).
Ralph Babel, rbabel@babylon.pfm-mainz.de
4.10 What are pragmas?
======================
Pragmas are special compiler commmands which control certain
features of a C-compiler. Two problems arise when using pragmas:
1. Pragmas are compiler specific. You cannot expect that one compiler
will understand pragmas of another compiler, even if both run on
the Amiga.
2. You are not guaranteed that a compiler ignores pragmas, that he
doesn't understand. Even more: It might not help, to use something
like this:
#ifndef MY_COMPILER
#pragma DoAnything
#endif
A workaround is to put pragmas in a special include file (BTW, the same
holds true for statements like #asm (Aztec-C) or #extern (C++) and
replace the above with
#ifndef MY_COMPILER
#include <mypragmas.h>
#endif
But what do pragmas on the Amiga? The most common usage (not the
only, but most meant when talking about pragmas) is to tell the
compiler about how to call library functions: Simple C functions expect
their arguments on the stack, but library functions want their
arguments in special processor registers and additionally the `library
base' in register a6. Lets have a look at a pragma command of the
Aztec-Compiler.
#pragma amicall(SysBase,0xd2,FreeMem(a1,d0))
This tells the compiler to put the first argument of FreeMem in register
a1, the second in register d0 and the value of the variable SysBase in
register a6. Maxons pragmas look the same, Dice pragmas and SAS pragmas
look a bit more complicated;
#pragma libcall SysBase FreeMem d2 0902
Here d2 is (like 0xd2 above) the `library vector offset' (see below),
the digits 09 are codes for the argument register in reversed order
(Register codes are 0=d0, 1=d1, .., 8=a0, 9=a1, a=a2, ..), the
following 0 is the result's registerä(always d0))and the final digit 2
is the number of arguments.
A command `FreeMem(fib,sizeof(*fib);' could produce the following
code, if the compiler has seen a pragma statement like above:
move.l _fib,a1
move.l 260,d1 ; sizeof(struct FileInfoBlock)
move.l _SysBase,a6
jsr -0xd2(a6) ; 0xd2 = _LVOFreeMem
Calling FreeMem in that way is shorter and faster than pushing the
arguments on the stack, calling a function _FreeMem which would do just
the same like the above code by pulling the arguments from the stack.
The best way to use pragmas is to include statements like the
following in your program:
/* SAS/C, Dice and GNU-c (since version 2.6.1) make it */
/* very simple: */
#if defined(__SASC) || defined(_DCC) || defined(__GNUC__)
#include <proto/exec.h>
#else
/* Get the prototype for the function; note, that this */
/* is compiler independent. */
#include <clib/exec_protos.h>
/* Get the pragma; compiler dependent, but most pragmas */
/* are in files with the same name. */
#ifdef AZTEC_C
#include <pragmas/exec_lib.h>
#elif defined(__MAXON__)
#include <pragmas/exec_pragmas.h>
#endif
/* Declare the SysBase variable */
extern struct ExecBase *SysBase;
#endif
The above example can be compiled on all these compilers and produce the
best code. (Besides, the proto/*.h-files do nothing else than reading
clib/*_protos.h and pragmas/*_pragmas.h with #include and then declare
the SysBase variable.)
A final question arises: How to get the pragmas? Most compilers have
them included. However, sometimes you want to produce pragmas for
yourself, for example if you are using new libraries or new versions
with additional functions. In that case you can produce them from the
so-called `FD' files which should be a part of the developer docs of
the library. (The NDU has a directory FD which contains FD files for
all libraries and devices of the OS. see Includes) Most compilers have
a utility with the name `fd2pragma' or similar included which can do
that for you. A freely distributable version which can produce pragmas
for Aztec, Dice, SAS and Maxon as well as LVO files for assembler and
stub routines for the tag versions is available on Aminet
(`dev/misc/fd2pragma2_0.lha' and on the Fish CDs.
For pragmas under gcc see Inline Headers.
4.11 My Compiler/Linker is complaining about missing symbol xxx.
================================================================
First be sure, that the function is really missing: For example
floating point functions are in a special link library and you need a
linker option like `-lm' to include it into your program. Another
possibility would be that you are using a library function and didn't
notice it. This might lead to a missing library base, `IntuitionBase'
for example. In that case just put something like
struct Library *IntuitionBase;
somewhere in the global part of your program. (Don't forget to call
OpenLibrary() and CloseLibrary! :-)
However, you could as well use a function which really isn't present
in your library at all. If you have, for example, an amiga.lib from 2.0
you would hardly find the locale functions or the pool memory
functions. (1) Best solution is to get the NDU (see Includes), but you
probably don't want to wait for it. In that case you have to find what
kind of function you are missing.
* Simple library functions (Examples: `exec/AllocPooled',
`locale/OpenCatalogA') can be called with pragmas. However, you
need informations on the name of the library base and where to put
the arguments. See Pragmas.
* Tag functions are mostly just stub functions which call library
functions. If you have, for example, `dos/AllocDosObject' which
expects a constant and a pointer to an array of tags, you have the
varargs version `AllocDosObjectTags' which expects tags on the
stack as well! Just create the following function:
#include <clib/dos_protos.h>
#include <pragmas/dos_pragmas.h> /* Probably wrong name */
void *AllocDosObjectTags(ULONG objtype, Tag tag1, ...)
{ return(AllocDosObject(objtype, (struct TagItem *) &tag1);
}
* Some functions still remain: Amiga.lib has some functions which
are really doing valuable things and not just call a library: The
BOOPSI functions (`DoMethod', `DoSuperMethod') the memory pool
functions (`LibAllocPooled', `LibCreatePool', which are
replacements of 3.0 functions). The only way to replace these is
to get equivalents. The AmigaFAQ archive contains some of them
(DoMethod, DoSuperMethod and HookEntry) in the `programmer'
directory as well as the most common pragma files and some
examples of varargs functions. See Amiga-FAQ Archive.
---------- Footnotes ----------
(1) This problem arises most frequently for owners of Aztec which
is no longer supported and owners of Dice, which has sometimes rather
incomplete libraries. I own both ...
4.12 Where do I find the function xxx?
======================================
If you are not sure about the name of the appropriate function for a
certain job or in which library to find it, you can search in these
places:
* In the Autodocs for each library you find at the very beginning a
contents table listing all functions available in this library.
They are sorted alphabetically, just like in the rest of the
Autodocs. In the body part of the Autodocs you find complete
explanations and specifications for each library function. See
Includes.
* The .FD files also offer a very compact overview over all functions
of the diverse libraries, complete with a short information about
the function arguments. If you already know roughly what you
search for and e.g. only need the precise order of the arguments,
you can find all needed information here. See Pragmas.
Dr. Peter Kittel, peterk@cbmger.de.so.commodore.com
4.13 The GNU C compiler: general information and installation
=============================================================
This chapter contains general and installation information about the
amiga-port of the GNU C compiler gcc.
4.13.1 Current Version
----------------------
Gcc current version is now 2.6.0 and 2.6.1 is in work. It does
include a new version of ixemul.library, v40.3, but users are urged to
get ixemul404.lha on Aminet site or my own FTP site, due to errors for
68000 systems. A new library, libnix, avoid using ixemul.library.
2.6.1 will include protos, like SAS-C, making SASC ports to GCC easier.
A new assembler, gas-2.5 is included, a package called q_anote enables
output of mixing C/Asm code for debugging purposes. Work is in
progress to implement stack growing facility, thus avoiding setting
stack before launching gcc.
4.13.2 Requirements
-------------------
Any Amiga (ranging from A1000 upto A4000/40) will run amigados-gnu
utilities. A minimum of 4MB memory is needed in order to compile
small/medium projects. More memory will be needed for large projects,
such as recompiling gcc itself, or programming C++. Gigamem and VMM do
work with GCC so *maybe* less memory will work. But in this case, an
MMU equipped Amiga (A3000,A4000/40) is necessary. See 68EC0xx.
A full installation, including C++/ObjC related files, inline
headers, cbm-headers, (see Includes) roughly requires about 20 MB of HD
space.
Support for 1.2/1.3 is dropped. If you have 1.2/1.3, get a better
Kickstart version. Gcc works under KS 1.2/1.3, but the full
functionality is only available under KS 2.x+. A fast CPU (eg.
68030@25MHz or better) is also of help.
4.13.3 Authors
--------------
Gcc and related GNU-software has been ported to the Amiga by the
following folks: See How to get help.
Gcc v2.2.2 port: Markus Wild
Gcc v2.3.3 port: Markus Wild
Gcc v2.4.5 port: Philippe Brand, Lars Hecking, Fred Fish
Gcc v2.5.0 and up: Philippe Brand, Fred Fish, Leonard Norrgard
Ixemul.library: Markus Wild, Leonard Norrgard, R. Luebbert
Libnix: Matthias Fleischer, Gunther Nikl
Gerlib: Gerhard Mueller
4.13.4 Sources for Gcc
----------------------
All GCC sources & binaries are available on:
1. Aminet sites (wuarchive.wustl.edu and mirrors such as ftp.luth.se)
in /pub/aminet/dev/gcc
2. Ramses The Amiga Flying BBS:
+33-1-60037015 HST Dual v32 terbo 4800-21600
+33-1-60037713 SupraFax v32bis 4800-14400
+33-1-60037716 Tornado v22bis 1200-2400
in Topic `Development', Area `Gcc' (are 156).
GNU source code is available on:
1. the same FTP site you've taken the binary distribution from
2. gnu.prep.ai.mit.edu (18.71.0.38) in `/pub/gnu'
3. Ramses The Amiga Flying BBS in Topic
`AmigaUnix/Unix/Linux/NetBSD', Area `Gnu Source Code'
These archives should contain everything necessary to get you going,
they don't include sources for ixemul.library, which are available on
Aminet sites in `/pub/aminet/dev/gcc/ixemsrc3947.tar.gz' (as of this
writing, work is in progress for the v40 version of ixemul.library,
sources will be available on an Aminet site near you).
As stated by Richard Stallman of the FSF:
"The GPL says that any distribution of binaries must contain either
the source code or a written offer to supply source code (see the GPL
for details of what is required)."
4.13.5 Inline Headers
---------------------
The inline headers for gcc can be created from the original CBM fd
files. See Includes. See Pragmas. They can be created as follows:
CLI> Assign INCLUDE: GCC:os-include
CLI> Assign FD: INCLUDE:fd
CLI> Makedir INCLUDE:inline
CLI> cd USR:bin/geninline
CLI> gen31
This will create all inline-headers in `GCC:os-include/inline'. If
you have 2.0 headers, use gen20 instead, if you have 3.0, use gen30.
OS3.1 (rev 40.13) inline headers are included with the current version
of gcc. See Current Version.
NOTE: perl scripts do not handle correctly AmigaDOS include files,
which seems to mean they are somewhat broken. This needs some voluntary
work ...
There is also another way of generating inline headers, using
fd2inline program:
CLI> fd2inline <fd_file> <proto_file>
4.13.6 Amiga Libraries
----------------------
Starting from this release an AmigaDOS compliant library is provided,
thanks to libnix authors (Matthias Fleischer and Gunther Nikl).
Anyway if you want to rebuild one, there are two methods:
1) Using hunk2gcc; the AmigaDOS object converter made by Markus
Wild. To achieve this, simply grab a copy of latest amiga.lib (from
Commodore Development Kit, see Includes) and make a new directory where
you want your converted object files to go, cd into it, and enter
hunk2gcc amiga.lib [..further libs if you like..]
This generates an a.out object file for every program unit present
in the hunk file (in this case, from amiga.lib).
As the final step convert all those files into an a.out style
library by issuing:
ar qc libamiga.a obj.*
ranlib libamiga.a
The ranlib run builds a symbol table in the archive, and makes
accesses to the library much faster.
2) Creating a libamiga.a library with libnix is fairly easy, but
takes some time. Just uncompress sources.lha from libnix distribution
and run a `make libamiga.a'.
*Note:* As long as you make no AmigaDOS specific calls, you can
create a dummy library using:
cat "int dummy;" >dummy.c
gcc -c dummy.c
ar crv libamiga.a dummy.o
mv libamiga.a gcc:lib
4.13.7 Installation
-------------------
1. If this is your first installation of GCC:
Do the following:
cd place_with_lot_of_space ; EDIT! specify one
makedir gnu
lha x gcc260-base.lha ; first part, you need it
Now you have to append `gnu/s/user-startup' to your
`s:user-startup' (replace Devel:GNU by your own gnu path).
Continue:
execute gnu/s/user-startup ; makes important assigns
copy gnu/envarc/#? ENVARC:
*Edit* the following lines! If you have a 68000 or 68010 Amiga,
remove the "-020" from the following lines wherever it appears!
lha x gcc260-c-020.lha ; C-compiler part; you need it
lha x gcc260-doc.lha ; only if you want Gcc documentation
lha x gcc260-c++-020.lha ; only if you want C++
lha x gcc260-objc-020.lha ; only if you want Objective-C
lha x gcc260-utils.lha ; only if you want additional utilities
; (recommended for Unix compatibility)
lha x gcc260-utilsdoc.lha ; if you want all utilities documentation
You must restore links between some programs by running the script
`restorelinks':
sh /gnu/s/restorelinks ; EDIT! Append a " copy" to this line
; if you don't want to use makelink
; but rather copy file
Last part:
lha x gcc260-diffs.lha ; if you want to rebuild all distribution
lha x gcc260-texi.lha ; if you want to build Postscript doc files
Now skip to next paragraph and happy compiling!
2. If you "upgrade" your gcc environment from v2.5.x, just unarchive
first 2 archives as it would normally include all what you need
(thus gcc260-base and gcc260-c). Make sure you delete your
previous ixemul.library wherever it is (usually LIBS:).
*Note*: new version of ixemul.library is provided, make sure you
don't have another copy somewhere which may conflict with gcc.
4.13.8 Compiling
----------------
What about a nice Hello World ?
#include <stdio.h>
main()
{
printf("Hello World!\n");
}
This was pretty simple ;-) Now we have to compile it. There's a lot
of options in gcc but simplest way to compile this would be:
CLI> gcc -o hello hello.c
Simple ?
Here's more options.
Target processor for Motorola family: You can compile plain 68000
code, 68020, 68030, 68040, 68881 (have a look at GCC documentation,
either in info or AmigaGuide format, chapter `Invoking Gcc/SubModel
Options/M680X0 Options for Motorola specific compilation flags').
CLI> gcc -m68020 -m68881 -o hello hello.c
This will compile your programs using 68020 code and direct calls to
math-processor, and will link with accelerated libraries, located in
`GCC:lib/lib020'.
Optimization: Either you don't want optimization, or you can provide
`-O', which will optimize your code, or if you really want top
optimization, use `-O2' flag (for more discussion about optimization,
read info or AmigaGuide doc chapter Invoking Gcc/Optimize Options).
There's now even a `-O3' optimization option, which will go even
further.
CLI> gcc -O2 -o hello hello.c
You'll never have a "Hello World" program running so fast ;-)
Code generation: Perhaps you want to generate resident programs.
Flag is -resident, at compile and link stage.
CLI> gcc -resident -o hello hello.c
Of course you can mix all options, resulting in:
CLI> gcc -O2 -m68020 -m68881 -resident -o hello hello.c
This will make a 68020+68881 executable highly optimized and
resident.
IMPORTANT: If you only use AmigaDOS functions or you don't want to
use ixemul for philosophical reasons, you can get rid of ixemul.library
with:
CLI> gcc -noixemul -o foobar foobar.c
provided you have libnix distribution (included with 2.6.0
distribution).
4.13.9 How to get help
----------------------
The current amiga-gcc-port maintainer is available:
Philippe BRAND
Fidonet: Ramses The Amiga Flying BBS 2:320/104.21
Email: phb@colombo.telesys-innov.fr (ONLY for personnal email).
Ftp: colombo.telesys-innov.fr:/pub/amigados-gnu
or /pub/incoming/uploads for uploads.
There's also an amiga-gcc mailing list running in Finland. See
Mailing lists. Philippe Brand will forward all questions to that list,
but you'd be better off using it directly ;)
5 Applications
**************
This chapter offers informations about major Applications.
5.1 Text Editors
================
Text Editors are programs allowing to enter and edit unformatted
text. Generally, this means text that is meant to be manipulated by
machine, rather than human. Programmers use these to enter the text for
compilers. Since UNIX machines don't typically have word processors,
most text processing starts with a text editor, then is filtered
through a page layout system (TeX, for example) to produce attractive
paper results.
*Commercial Products*
CygnusEd Professional and TurboText seem to be the main contenders
in the professional realm. The Fred Fish disks contain dozens of
other shareware text editors. A demo version of TurboText is on
Fish disk 445. A very old demo of CygnusEd is on Fish disk 95
(testament to its lasting-power). In the following some freely
distributable editors will be discussed.
*Emacs*
Gnu Emacs (the "G" is not silent) comes from Unix and is probably
the king of editors - it's huge (about 1 Megabyte), feature-packed
(it does windows and even contains a game!) and extensible (if you
know lisp you can write new emacs functions and bind them to any
key combination). On the other hand, it may be too huge, its
feature-ladenness is imposing, and its extensibility often means
you can't use someone else's emacs configuration. Source: Aminet
(directory `util/gnu').
*Vi*
The leaner, less configurable, non-extensible cousin to gnu emacs
is vi (pronounced "vee eye"). Unix people like vi especially
because you find it on *any* Unix machine. What you choose is
personal preference, and will mark you for life. Vim is a good vi
for the amiga, and is on Fish disk 591 or in the `util/gnu'
directory of Aminet.
*DME*
Many Amiga programmers like DME. It's fast, fully configurable;
menus may be created and any key may be mapped. It's much easier
to learn DME than than Emacs or Vi. There are three different
versions: AmokEd, DME and XDME. It's a matter of opinion which you
prefer. (Oberon and Modula programmers like AmokEd because it's
written in Oberon and supports AmigaOberon error messages, C
programmers like DME or XDME.) Sources: Aminet (directory
`util/edit'), Fish disk 776 (XDME) and 749 (AmokEd), AMOK 90.
5.2 What word processors are there?
===================================
A word processor is the typical application for writing notes,
letters or reports on a computer. Unless you prepare newsletters on a
weekly basis, your word procesor is probably your workhorse program.
Thus choosing one you are comfortable with determines how comfortable
you are with your computer. Word processors can offer a variety of
features, and many can approach the sophistication required for Desktop
Publishing (see DTP) but no one uses them for programming, for which
text editors are more suited.
One distinguishes between Wysiwyg programs (What you see is what you
get) and page layout languages. Wysiwyg programs should be fast,
comfortable and easy to use. Most people prefer them. The alternative
is an approach that works similar to compilers. You feed text files to
a a program that produces the layout which may be previewed on screen
or printed. LaTeX takes this approach. See TeX. Lout is another such
system which seems smaller, easier to learn and has full documentation
included, but it is nonstandard. Lout produces Postscript output. (I
don't know if this is an advantage or disadvantage. ;-) See Postscript.
Both programs are freely distributable.
There are a lot of wysiwyg programs, but only commercial products:
FinalWriter, Final Copy II, Wordworth, Word Perfect, AmiWrite,
Beckertext II, Maxon Word and many others. I don't dare to recommend
any. All I can say is: Give yourself time to make a selection.
5.3 Desktop Publishing
======================
These programs offer features lacking in word processors, usually
tailored to flexible arrangement of text, but often don't provide all of
the text manipulation that a good word processor provides. The best
desktop publishing programs strive to provide the features of both,
just as the best word processors strive to provide the features of
desktop publishing programs. Microsoft Word (Mac, PC) is a good example
of a word processing program that offers many page layout feature.
Framemaker (UNIX, Macintosh, DOS, etc.) is an example of a desktop
publishing system that offers most needed word processing functions. As
yet, no Amiga program has bridged the gap, though the main word
processors are coming close. (On the other hand, even many
sophisticated programs don't support typesetting mathematics, tables,
producing bibliographies, indexes, or cross-references. The page layout
languages do, and programs like Frame are improving their support of
such features.) Unless you need to prepare fancy newsletters or
promotional literature, a word processing program is probably enough.
See Word Processors.
There are not yet any freely distributable wysiwyg desktop publishing
systems. Commercial products are ProPage and PageStream. They have been
playing leapfrog for the past few years. It appears that PageStream 3.0
is about to leap ahead. A more detailed description of these products
and their differences is welcome. Both programs' list prices are $299.
Student discounts are available (approx 40% discount.)
5.4 What is TeX and where can I get it?
=======================================
TeX is a very powerful wordprocessing system. It can display
mathematical formulas or complex tables as well as function graphs,
creates indices, contents and many other things. Its greatest advantage
is that it is freely distributable (TeX, not the previewers and the
printer drivers!) and that you find TeX all over the world on every
computer family. Its greatest disadvantage is that it isn't very handy
(works similar to a compiler) and it isn't wysiwyg. But many people
like it. (BTW: This document is written using TeX. 8-) See Word
Processors.
There are two major implementations on the Amiga. The first one,
Amiga-TeX, from Thomas Rockicki and Radical Eye software is commercial.
It is said to be excellent and his owners seem to be very satisfied.
But it costs at least 200$.
I recommend PasTeX, a freely distributable version. People seem to
have problems installing PasTeX, especially the font loading and
generation (It's a quite complex program.) but I did not here anyone
upset once it was installed. (A friend with knowledge of TeX helps
immensely.) A few words should be said what you need:
* 5 disks containing the TeX-compiler itself
* 2 disks containing MetaFont
* Nothing more Jörgen Grahn has written a short essay on how he
personally did to make LaTeX work on his Amiga. It's on Aminet as
`text/tex/UsingLaTeX.lha'.
Many people ask for fonts. They are included in the MetaFont-package
and can get compiled by you. All you need to do is setting up your
TeX-system in the right way which is described in the documentation.
Please note that the PasTeX disks are compressed using the program
Zoom. (see Endings) Sources: FTP at `ftp.uni-passau.de', directory
`/pub/amiga/tex/PasTeX1.3' and the Fish CDs.
5.5 Are there any Postscript interpreters?
==========================================
PostScript is a programming language designed to be used to describe
printing on pages. Apple helped make PostScript popular by selling
printers with built in PostScript interpreters. Many programs have
evolved to produce PostScript programs as their output, making
PostScript the lingua franca of printing. Until recently, in order to
print a PostScript file, you had to have a relatively expensive laser
printer. The development that changed this was the software PostScript
interpreter. These programs allow your computer to interpret PostScript
programs, and produce the matrix of dots to send to your normal
graphics printer.
One of the benefits of PostScript is that it is resolution
independent. What this means is that it can support the highest
resolution of your device - and that you can reasonably preview
PostScript on a low resolution screen.
There are two free PostScript interpreters for the Amiga. Post and
Ghostscript. Post comes as an Amiga shared library along with front
ends for previewing to the screen and printing. This structure allows
others to write programs that can show PostScript images on screen. In
fact, AmigaTeX uses Post's library to support incorporation of
PostScript into documents. Ghostscript similarly comes in two
programs, but not as a shared library. Ghostscript is the rendering
engine, and Ghostview is the front end. Sources: Aminet (directorys
`text/print' and `text/dtp'), Fish disk 669
Font Concepts
=============
The Amiga is able to use two different concepts of fonts. First of
all there are the bitmap fonts. These fonts are created by drawing a
letter pixel for pixel onto the screen. The advantage is that they
look good at small sizes, but are not very good for printout. Also
they don't look very good when you change their size. Therefore you
have to recreate the font for each size. Second there are the vector
fonts. They are created by curves which are stored as mathematical
formula. This has the advantage that changing the sizes does not
effect the output. But this only applies for larger sizes and
print-outs. Vector fonts also use less memory.
5.5.1 Amiga Font Formats
------------------------
1. Agfa IntelliFont (suffix: .type or .lib) is the native font format
on the Amiga. You can use it in any application and it can be
converted to the standard bitmap format using the system
utilities `IntelliFont' (OS 3.x) or `Fountain' (OS 2.x).
2. Postscript Type 1 fonts can be used within many applications, it
can be used in every word processor and DTP program. There are
two versions of the Type 1 format: Binary and ASCII (suffix:
.pfb & .pfa). The Amiga software uses the Binary format, but you
can easily convert them with TypeSmith or some PD software
products (z.B. PFB2PFA) . In Addition to the files mentioned
above, there are the metrics files with the suffixes .afm or
.pfm. They contain information about the size (width) of the
letters and most programs expect this file to be in the same
directory as the font file.
3. Postscript Type 3 fonts (suffix: .ps or nothing) are not often
used on the Amiga, but some applications do support this font
format (e.g. PageStream). There are also some download
utilities from PD sources available.
4. Truetype fonts (suffix: .ttf) are not very common on the Amiga,
there is one word processor supporting this format (Wordworth
3.0). Due to the lower quality of the format, Amiga users tend
to use higher quality for their DTP, DTV and word processing...
There are also two formats: Mac & Windows available. The Amiga
software is able to use the Windows format.
5. DMF fonts is the privat format of PageStream (suffix: .dmf), since
PageStream is the market leader in DTP programs on the Amiga, so
this format is very common!
6. Bitmap fonts (suffix: .font and numbers in a directory by the name
of the font, sometimes .otag when converted from IntelliFont)
were used in the OS 1.x, but have been replaced by the superior
IntelliFont Format in OS 2.0. Under 2.0 or higher you still are
able to use the bitmap fonts for small sizes, but for printouts
you should use the IntelliFont format or any other vector font
format mentioned above.
7. Colour Bitmap fonts (same suffixes as Bitmap Fonts, but the
numbers have in addition a C, e.g. 35C) are also very common on
the Amiga, they are mainly used for DTV applications, like the
Video Toaster and Scala.
5.5.2 Frequently Requested Amiga Fonts
--------------------------------------
1. First place to look for fonts is the AMINET archive. This is the
biggest archive of Amiga software and there you will find also
quite a lot of fonts. The Aminet consists of many mirrors
around the world. Here are some of them:
1. ftp.wustl.edu,
2. ftp.luth.se,
3. ftp.eunet.ch,
4. ftp.uni-paderborn.de,
5. ftp.doc.ic.ac.uk.
Just log in as ftp and go to the directory
/pub/aminet/text/font.
2. Another good ftp server to look is the CICA-server:
1. ftp.cica.indiana.edu
To this server are also some mirrors around the world available.
3. Also a good place to look for is the following WWW server:
1. http://jasper.ora.com/Internet-Font-Archive.html
4. Another good place is the Fresh Fonts I CD-ROM, there you will
almost certainly find some nice fonts. The CD is available from
1. Fred Fish / Amiga Library Services (orders@amigalib.com)
2. Stefan Ossowski / Schatztruhe GmbH
The CD is for free when buying another CD from that company.
You can also access the HTML pages on the CD under the following
address:
1. http://macke.gris.informatik.uni-tuebingen.de:4711/~damor/
5.5.3 Commercial Font Sources
-----------------------------
Commercial fonts can be obtained from a number of different
companies, including the large font houses: Adobe, Font Haus, Font
Company, Bitstream, and Monotype. At these companies, fonts cost
about $40 for a single face, and must be purchased in packages.
Adobe, Bitstream, and Monotype also sell pre-designated type
collections for slightly lower prices.
There are also a lot of PD reseller who have a vast quantity of
fonts, check out your local Amiga magazin for more information.
Please consult the vendor list for a more complete list of vendors.
5.5.4 Non-Latin fonts on the Amiga
----------------------------------
Due to the really bad information policy by C= there was actually no
information about non-latin fonts. But still it is possible to use
them, without difficulty. You just have to get yourself some
additional files. First of all you need the non-latin font files.
There is a large selection of them on the Fresh Fonts CD-ROM
mentioned above. In order to use the non-latin font files, you have
to get yourself the appropriate keymap file, this will remap the keys
on the keyboard to the appropriate letters of the foreign alphabet,
e.g. in order to use a Russian font, you should set the russian
keymap file in the preferences (via PREFS/INPUT).
Not only that you can write with a non-latin alphabet, you can also
localize your workbench. How about a Greek workbench or a Hebrew
workbench? Have a look into the AMINET archive (mentioned above) for
these files!
In addition to this you can easily use Hebrew & Arabic in any word
processor incl. writing from right-to-left! This can be easily done
by setting the kerning value to negative values (like this the cursor
moves left and not right) and moving the characters into the negativ
part! You can get fonts from me with this feature!
5.5.5 Amiga Font Installation
-----------------------------
The installation of Postscript, DMF and Truetype fonts is described
by the application that use them. Please refer to the manuals of the
software packages.
The installation of IntelliFonts is very easy. Just start
`IntelliFont' (OS 3.x) or `Fountain' (OS 2.x) and follow the
guidelines from within the program.
In order to install bitmap fonts, either copy them to the logical
device FONTS: or assign the directory with your bitmap fonts:
ASSIGN Fonts: <your_directory> ADD
Right after this you can start your application and use them. When
using non-latin fonts, don't forget to set the appropriate keymap
file!
5.5.6 Amiga Font Utilities
--------------------------
1. IntelliFont
IntelliFont is the system program by OS 3.x which lets you install
Agfa IntelliFonts and converts them to bitmap fonts. The program
is located in the drawer `SYS:System/'. For more information
read your Workbench 3.x manual.
2. Fountain
Is the preceding program to IntelliFont and comes with the now
obsolete OS 2.x. Please read the section about Fountain in your
Workbench 2.x manual.
3. PFB2PFA
This neat little utility lets you convert Postscript Binary files
to Postscript ASCII files. This is needed in order to use DOS &
Amiga Adobe Type 1 fonts on the Mac!
4. CacheFont
This great program caches the fontlist for you, in order to save a
huge amount of time. The program looks for all fonts available
on the system and creates a special cache-file on disk.
5. TypeSmith
This is the best font converter on the Amiga, besides this
function it is also a full blown font editor (see below) :-).
The program is able to convert between:
1. Truetype
2. DMF
3. Adobe (Type 1 & 3)
4. IntelliFont
5. Bitmap (Amiga, Adobe, DMF)
5.5.7 Making Outline Fonts
--------------------------
This is very, very difficult. Many people imagine that there are
programs that will simply convert pictures into fonts for them. This is
not the case; most fonts are painstakingly created by drawing curves
that closely approximate the letterforms. In addition, special rules
(which improve hinting, etc.) mandate that these curves be drawn in
specific ways. Even designing, or merely digitizing, a simple font can
take hundreds of hours.
The easiest way of learning how to create fonts, is to have a look at
existing fonts and try to change some letters.
Given that, there are two major programs used for font design on the
Amiga, TypeSmith 2.5 ($150) and FontDesigner ($100). These programs
will allow you to import scanned images, and then trace them with
drawing tools. The programs will then generate Adobe type 1, 3,
TrueType, AGFA Intellifont, DMF and Bitmap fonts for either the
Amiga, the Macintosh or the IBM PC. They will also generate automatic
hinting. They also open previously constructed outline fonts,
allowing them to be modified, or converted into another format.
As far as I know, there are no shareware programs that allows you to
generate outline fonts.
There are also two programs for creating bitmap fonts. Personal Fonts
Maker and Calligrapher. The second one has not been updated for
several years, but it still is a good tool to work with. The first
Program was created by adding some features to a good bitmap paint
program (Personal Paint).
There are some shareware tools to create bitmap fonts which you can
convert to outline (vector) fonts with TypeSmith.
5.5.8 Problems and Possible Solutions
-------------------------------------
1. Pagestream does not recognize your newly installed font.
This happens when you have two fonts with the same ID. The
solution is to load such a font into a font editor and enter a
new ID for one of the fonts. Still it might happen that you
choose another one, that has already been used by!
2. Your application does not find the IntelliFont.
This happens when you haven't set the locigal device FONTS: to
your drawer. You can change this by typing the following
command into your SHELL or add this line to your
`S:User-Startup' file:
ASSIGN Fonts: <your_drawer> ADD
3. You're using a non-latin font and the wrong characters appear when
typing.
This happens when you forget to set the appropriate keymap file.
Enter the Prefs directory and start the program `INPUT'. There
you can choose your keymap file.
5.6 How to deal with Non-Latin texts?
=====================================
Currently I know only programs for read japanese and chinese texts.
Siepieau Pang (siepiau@gbamail.mincom.oz.au)
5.6.1 Japanese editors and viewers
----------------------------------
ANS (Amiga Nihongo System) version 1.0, produced by
SoftHouse Tecnode
102 Coupo Izumi
1-4-5 Houya-shi
Izumi-machi
Tokyo 202
JAPAN
and distributed in Japan by MIQ Japan, Ltd. has been released in Japan.
It offers a Japanese environment for Commodore Amiga users, is
compatible with Amiga DOS 2.0 (works fine with version 1.3, too), and
requires at least 1MB RAM (more recommended). ANS features Japanese
windows/menus (these replace the English menus), 12 and 24 dot-matrix
Japanese fonts, Jinput/Joutput (both constitute a Japanese front-end
processor), XEDmini (a simple Japanese text editor with built-in font
editor, and can be used as a Japanese terminal), a kana-to-kanji
conversion dictionary for XEDmini and Jinput, Jfilter (for viewing
Japanese files while connected to an MS-DOS console), and utilities for
Japanese code conversion and communication. Note that XEDmini uses pcj
(Japanese version of pcd) for communications, and that one can do binary
uploads/downloads while working on files). I hear that it is reasonably
priced, and very easy to use.
JemTeX is a preprocessor that turns a Japanese text file (i.e., a
TeX file with Japanese text) into a standard (La/Mu)TeX file. The
archive (zipped) comes with the jis2mf utility along with a 24-dot
bitmapped kanji font and a program for generating kanji tables. With
jis2mf you can make metafont files out of the bitmapped font. JemTeX
v2.0 will compile on an Amiga using SAS/C, or on a UNIX machine using
gcc. This program is available at the FTP site utsun.s.u-tokyo.ac.jp
(133.11.11.11). JemTeX v2.0 was written by Francois Jalbert
(jalbert@iro.umontreal.ca or jalbert@cs.ubc.ca).
The following are PD viewers on Aminet (text/show directory)
JIStoJi by Bart Mathias automatically identifies electronic texts
written in Old-JIS, New-JIS, Shift-JIS, or EUC-JIS (as well as ASCII)
and displays them on screen, or prints them to dot-matrix printers.
Will run on Kickstart 1.3 and up.
jmore (Japanese more) is basically a more clone that also reads
ns-kanji (Shift-JIS) text. It opens its own hires interlaced screen and
requires a font handler called jFontSys to be running. The archive
includes jmore, jFontsys and the wlook/16 bitmap font. However, you
will also need the kanji fonts. (Aminet, `text/font/amknj16.lzh') All
the documentation comes as Japanese text, so you need a JIS viewer to
read the installation instructions. For your convenience, I have
summarized the installation procedure below:
1. Place the `wlook/16' font in your `FONTS:' directory
2. Assign `JFONTS:' to where you unarchive the amknj16 fonts. This
need not be the same as your `FONTS:' directory
3. Place the file `jFont-startup' in the `S:' directory
4. Insert the following line into your `startup-sequence':
run >nil: jFontSys
5. To use execute the following command
jmore <japanese.txt>
JISconvert by Dwight Hubbard is a japanese text conversion utility for
Amiga computers. It supports conversion between EUC, New JIS, Old JIS,
NEC JIS and Shift JIS. It also has options to convert half-size
katakana to full size and repair files with ESC characters stripped. No
installation required. Requires AmigaDOS 2.04 or newer.
5.6.2 Chinese text viewers
--------------------------
HZview (by Ji Ma) shows 8-bit Guo Biao encoded chinese text
documents. Requires AmigaDOS v2.1 and above, and cclib.16 bitmap
library (included).
*NOTE*: This is a pre-release version. What the doc file does not
tell you is that you need to do the following:
1. Open a default public hires interlaced 1 or 2-bit deep screen
2. The size of the file to be read is restricted to about 30K (on my
machine, A1200, WB3.0)
3. An FPU is required if you want to scroll the text without crashing
4. The cclib.16 should be in the same directory as the file to be read
Other small bugs still exist which may crash the machine.
6 Connecting your Amiga to the world
************************************
7 Emulators
***********
What? The Amiga isn't good enough? You really want it to be another
machine? Well, look here...
7.1 Can I run Unix on my Amiga?
===============================
Actually there are three Unix versions on the Amiga. All of them
need at least 68030 (see 68EC0xx), probably a 68040 in the near future
and seem to have problems with many hard-drive-controllers. You should
have a good look into the documentation before installing it. Unix
needs much resources, say at least 10Mb RAM and a 150Mb Unix-partition
on the hard-drive.
1. Commodore offered a System V Unix in the past. It contained TCP/IP,
X11 and other software and seemed to make a good job, but it was
expensive and after all Commodore has dropped developing it.
Commodore-Unix needs a streamer because it is distributed on tapes.
2. A Linux port is prepared. But actually there is not very much than
the kernel. Specialists might like to use it, but it cannot be
recommended for now. Linux is freely distributable. Sources:
`ftp.tsx-11.mit.edu' or `ftp.uni-erlangen.de', both directory
`/pub/Linux/MIRROR.tsx-11/680x0'. Or `ftp.leo.org', directory
`/pub/comp/os/linux/680x0'.
3. NetBSD is freely distributable too. Like Linux it isn't ready for
now, but it seems to make big steps. Most GNU software is said to
run, especially emacs and gcc. I think it's worth to have a look
on it. Sources: `ftp.uni-erlangen.de', Directory
`/pub/amiga/unix/NetBSD-regensburg'. See Fish CD.
7.2 Is it possible to use the Amiga as X11 terminal?
====================================================
Yes, it is. There are three different packages available:
GfxBase offers a commercial version which is said to be excellent,
but expensive. The distribution includes different window managers and
clients. A demo version is on Aminet. (`gfx/x11/GfxBase-X11-Demo.lha')
AmiWin is a Shareware X11R6 product supporting AmiTCP, AS225 and
different graphic cards. A demo version is available on Aminet,
`gfx/x11/AmiWin*.lha'.
DaggeX is freely distributable and probably not finished yet. (It
calls itself version 0.91.) Source: Aminet, `gfx/x11/DaggeX-0.91.lha'
and `gfx/x11/twm_930531.lha'.
7.3 Is there a way to start MS-Dos programs?
============================================
PC-Task is a software only IBM-PC emulator for all Amiga computers
allowing use of MSDOS and MS Windows 3.1 software (provided RAM/HD
space is sufficient). The current release is 3.1 which includes
emulation of 80286 with MDA/CGA/EGA/VGA/SVGA, serial and parallel
ports, mouse, two harddrives, two floppies and CDROM support. A
demonstration version can be obtained from aminet sites:
`/pub/aminet/misc/emu/PCTaskDemo31.lzh'. Author Chris Hames
(bytey@werple.mira.net.au) Publisher (pctask@quasar.dialix.oz.au)
7.4 How to mount MsDos-formatted Syquests on Amiga
==================================================
To mount a MSDos-formatted Syquest on Amiga, you need with an (DOSen)
Adaptec-Controller the following Mount-entry in `DEVS:Mountlist': If
your medium does have more than one partition, you need to copy the
following Mount-Entry for every partition and give each partition
another name (eg. SyC:, SyD:, SyE:, etc.) You don't need to change
LowCyl and HighCyl for each partition; CrossDOSFileSystem does that
automatically.
SyC: /* SyD:, SyE:, etc. */
Filesystem = L:CrossDOSFileSystem
Device = scsi.device
Unit = 2
Flags = 1
Surfaces = 1
BlocksPerTrack = 1
BlockSize = 512
Reserved = 1
Interleave = 0
LowCyl = 0
HighCyl = 524287
Buffers = 128
BufMemType = 0
Stacksize = 4000
Priority = 5
GlobVec = -1
DosType = 0x4D534800
Activate = 1
#
For different (DOSen) controllers this entry should work, too, but
maybe you have to adjust it. When inserted, the Syquest-270MB medium is
(in this case) automatically mounted (as drive SyC:) and can be used
with help of the CrossDOS-Filesystem as usual.
Gerhard Schneider (fido@incubus.sub.org) Andre Keller
(keller@rs11.hrz.th-darmstadt.de)
8 Miscellaneous
***************
This last chapter contains some questions that don't fit in the
chapters above.
8.1 Is there any unix version of LhA?
=====================================
See Endings.
8.2 What are files ending with ...?
===================================
Most endings on FTP sites or Fish disks tell you that the file is
compressed and/or is an archive containing more than one file. Some
programs even archive whole disks. Frequently found endings and
programs to handle the related files are:
*.sfx*
Compressed archives which are included in an executable program:
Just call the program and it will extract itself (sfx = self
extract)
*.lha*
*.lzh*
Compressed archives; recommended: LhA (`util/arc/LhA_e138.run' on
Aminet or Fish disk 715) or Lx (`util/arc/lx100.lha' on Aminet),
Unix version available (`misc/unix/lha-1.00.tar.Z')
*.dms*
Disks compressed using DMS (`util/arc/dms111.sfx' on Aminet or
Fish disk 406)
*.zom*
Disks compressed using Zoom (`util/arc/Zoom_5.4.lha' on Aminet,
Fish disk 682); an older version which you probably need for
uncompressing PasTeX is found on Fish disk 459.
*.zoo*
Compressed archive; recommended: Zoo (`util/arc/zpp2-10.lzh' on
Aminet or Fish disk 527)
*.Z*
*.z*
*.gz*
Compressed files; recommended gzip (`util/pack/gzip124x.lha' on
Aminet), note that this are Unix files in most cases
*.tar*
Acrhive; recommended: tar (`util/arc/tar.lha' or
`util/arc/gtar10.lha' on Aminet or Fish disk 445), note that tar is
a Unix archiver and you often find soething like `.tar.Z'.
*.arj*
Compressed archive; recommended unarj (`util/arc/unarj-0.5.lha' on
Aminet)
*.zip*
Compressed archive; recommended UnZip (`util/arc/unzip-5.1.lha' on
Aminet), note that this are MS-Dos archives in most cases
8.3 Is there a Stacker-like utility to pack my hard drive?
==========================================================
XFH does a good job. It operates as a handler and uses the
XPK-libraries, so you have different compression modes (RAKE is a good
choice) and possibly even more in the future. The only disadvantage is,
that the size of a file is limited by RAM: Don't use it with less than
2MB of RAM.
XPKDisk by Olaf 'Rhialto' Seibert is another stacker program that
takes advantage of the variety of XPK libraries available. Unlike other
harddisk compressors it does not compress the files, but creates a
pseudo partition and stores the whole tracks as compressed files on
your harddisk. Its major advantage is that it does not limit the
maximum file size, because it works similar to trackdisk.device and
therefore does not need too much temporary storage.
But be careful if you want to use ReOrg on a comprimized partition:
ReOrg should be set to leave enough memory for the xpkdisk buffers.
And because of ReOrgs buffering, you can use few buffers for xpkdisk
(perhaps as few as 2 or 3). Don't use ReOrg if you don't know the
memory needs of XFH or XPKDisk.
Another possibility is EPU. It's shareware and should offer the same
as XFH, but without limiting the file size.
Sources: Aminet, directory `util/pack', Fish disks 754 (XFH) and 858
(EPU)
8.4 Where do I get Fish disk xxx?
=================================
Those FTP servers have that much space (or a CD-Rom) to have all
fish disks available online:
ftp.isca.uiowa.edu (USA, directory `/amiga/fx/fxxx')
ftp.hawaii.edu (USA, directory `/pub/amiga/fish')
ftp.funet.fi (Finland, directory `/pub/amiga/fish')
Note that the CD-Rom's are not always mounted. See FTP.
Another possibility would be to ask your local dealer. :-)
9 Where and how do I get software and other informations?
*********************************************************
Three questions arise in this context: Which programs can be found,
where are they and how to get them and transfer them home?
9.1 Files and databases on freely distributable software
========================================================
Of course you need to know where you find things. Many good choices
are listed in this paper, as I hope. Other sources are:
*AmigaSciSchool*
is a list of software and where you find it in Ascii format. It is
posted monthly to the newsgroups `comp.sys.amiga.applications',
`comp.unix.amiga', and `news.answers'. Additionally you will find
it on Aminet sites (`text/doc/AmigaSciSchool-4.01'). It handles
everything listed here and many more, for example GNU software,
libraries (linked and shared), shells, Unix commands, educational
and scientific software and much more.
*FishCon*
are lists of the Fish disk contents. (`fish/doc/fishcon-???.lzh' on
Aminet)
*FishXref*
is a cross reference list of the Fish contents.
(`fish/doc/fishxref-???.lzh' on Aminet) FishXref and Fishcon are in
Ascii format.
*KingFisher*
A Fish disk database, (`fish/doc/Kingfisher1_30.lha', which is the
program and `fish/doc/KFData850.lha' ,which contains the data, on
Aminet or Fish disk 863) allows search by name and context. See
Fish.
9.2 A collection of tests
=========================
`Comp.sys.amiga.reviews' is a moderated newsgroup where tests of
soft- and hardware, books and anything else relevant to the Amiga are
posted. Its always a good idea to check this newsgroup for a review, if
you are interested in something special. Of course you always find only
the latest reviews, but the older postings are available per FTP from
`math.uh.edu', Directory `/pub/Amiga/comp.sys.amiga.reviews' or on the
Fish CDs.
9.3 Getting files from a FTP server
===================================
Things are easy for those who have access to the Internet and a
program called FTP (File Transfer Program). Nearly all Unix computers
have it, but not all of them allow the use of FTP.
FTP allows you to gain access to some other machines and store and/or
retrieve files. Normally one needs an acoount on the remote machine to
use it, bat a number of machines have a setup that allows everybody to
log in as the user `ftp' or `anonymous', so anybody may get files from
them. The most important of this servers are the Aminet servers, which
mirror each other and hence should have the same files. They are the
best choice if you are looking for Amiga software. Aminet hosts are
Land Name IP Adresse Pfad Files
USA (MO) ftp.wustl.edu 128.252.135.4 pub/aminet/ ALL
USA (CA) ftp.cdrom.com 192.216.222.5 pub/aminet/ 9000
USA (TX) ftp.etsu.edu 192.43.199.20 pub/aminet/ 5000
USA (WI) ftp.netnet.net 198.70.64.3 pub/aminet/ 10000
Scandinavia ftp.luth.se 130.240.18.2 pub/aminet/ 10000
Switzerland ftp.eunet.ch 146.228.10.16 pub/aminet/ 5500
Switzerland ftp.math.ethz.ch 129.132.104.6 pub/aminet/ 1000
Switzerland litamiga.epfl.ch 128.178.151.32 pub/aminet/ 300
Germany kelly.uni-paderborn.de 131.234.128.206 pub/aminet/ ALL
Germany ftp.uni-paderborn.de 131.234.2.42 pub/aminet/ ALL
Germany ftp.uni-stuttgart.de 129.69.18.15 aminet/ 4500
Germany ftp.uni-erlangen.de 131.188.3.2 pub/aminet/ 7000
Germany ftp.cs.tu-berlin.de 130.149.17.7 pub/aminet/ 4000
Germany ftp.tu-chemnitz.de 192.108.33.193 pub/aminet/ 4000
Germany ftp.fh-augsburg.de 141.82.16.242 pub/aminet/
Germany ftp.uni-bremen.de 134.102.228.2 pub/aminet/
Germany ftp.uni-oldenburg.de 134.106.40.9 pub/aminet/ 2500
Germany ftp.uni-kl.de 131.246.9.95 pub/aminet/ 1500
Germany ftp.uni-trier.de 136.199.8.81 pub/aminet/
Germany ftp.uni-siegen.de 141.99.128.1 pub/aminet/ 1500
Germany ftp.informatik.rwth-aachen.de 137.226.225.3 pub/aminet/
Germany ftp.stud.fh-heilbronn.de 141.7.1.41 pub/aminet/ 600
Germany ftp.rz.uni-wuerzburg.de 132.187.1.2 pub/aminet/ 700
France ftp.cnam.fr 163.173.128.15 pub/aminet/
Portugal ftp.ci.ua.pt 193.136.80.6 pub/aminet/
UK ftp.doc.ic.ac.uk 155.198.1.40 pub/aminet/ ALL
UK micros.hensa.ac.uk 148.88.8.84 pub/aminet/ 8500
All these mirrors have a directory `/pub/aminet', where you will find
much stuff. Please use a mirror close to you! Some other important hosts
are
ftp.funet.fi (Finland)
ftp.isca.uiowa.edu (USA)
ftp.hawaii.edu (USA)
ftp.cso.uiuc.edu (USA)
ftp.dfv.rwth-aachen.de (Germany)
Note that grind, aachen and erlangen have the full collection of Fish
disks available! See Fish disk xxx. If you don't find a specific file
on your local mirror, try `ftp.wustl.edu', `ftp.uni-paderborn.de' or
`ftp.doc.ic.ac.uk'; they keep all files.
To connect to a special host (ftp.uni-erlangen.de for example), you
should type
ftp ftp.uni-erlangen.de
The host answers by requesting your login. You should type
ftp
No you are asked for a password. Please type your Email address here, if
you have one. If not, use the password ftp.
Now you're inside the host. There is a number of commands you may
execute here. The most important are:
*?*
Prints the help text of the FTP command. Additionally you may type
*? command* to get information on a special command.
*bin*
Tells the FTP program that you whish to transfer binary files. It
is always a good choice to type bin as the very first command!
Files you load without the bin command can be corrupt.
*get <file>*
Loads the given file from the host. On most Unix machines you can
type something like `get file.txt -' or `get file.txt |more' to
show a text on the screen. Note that there *must not* be any blank
between the | and the word more!
*mget <pat>*
Loads the given files. pat may contain Unix style like wildcards.
*put <file>*
*mput <pat>*
Like get and mget, but transfer files from you to the remote host.
This is in most cases not allowed, except for a special directory
called `incoming'. You can place files here which you want to make
public.
*cd <dir>*
Like the usual cd command. The commands get, mget, put, mput, dir
and ls refer to the current working directory.
*dir [<dir>]*
*ls [<dir>]*
Like `list' and `dir' on the Amiga. Note that the FTP-dir
corresponds to the Amiga-list!
*bye*
Leaves the FTP program.
When you have used FTP for the first times you will notice, that you
always begin with executing the same steps:
1. Type the login (ftp in most cases)
2. Type the password (your mail address in most cases)
3. Enter the bin command
4. Change the current working directory (`/pub/aminet' for example)
This may get executed automatically. What you need is a file
called `.netrc' in your home directory. Note that it needs to be
protected against others! The FTP program doesn't use it, if it can be
read by anything else than you. (Protection is set using the command
`chmod go-rwx .netrc'.) The .netrc file contains some entries for your
most favourite FTP sites, each separated by empy lines. A typicel entry
may look like this:
machine ftp.uni-erlangen.de
login ftp
password <your mail address> or <ftp>
macdef init
bin
cd pub/aminet
Note that on some machines it is possible to use the machine name
`default' which meets all machines not listed in .netrc.
9.4 Getting files from a Mail server
====================================
Another way to get files is to use a mail server. This assumes that
you can send mail to Internet addresses and get mail from Internet
hosts. It works by sending a mail to the server specifying some
commands, for example send commands for the files you want. Important
mail servers are
ftpmail@decwrl.dec.com
mailserver@nic.funet.fi
mailserver@leo.org
mrcserv@janus.mtroyal.ab.ca
mail-server@ftp.cs.tu-berlin.de
mail-server@rtfm.mit.edu
ftp-mail@uni-paderborn.de
The most important commands are:
*Help*
Tells the server that you wish to get an Ascii file containing
detailed explanation how to use the server.
*Limit <number>*
Specifys that you wish to get not more than <number> Kbytes per
mail. Larger files get splitted into small pieces of at most
<number> Kbytes which are sent as separate mails each. Note that
the mails may get larger because of overhead.
*Cwd <dir>*
Sets the current working directory to <dir>. This directory is
used by the commands send and dir.
*Index*
will return a list of files and/or directories that the server
offers. Note that this may be *very* large!
*Index <item>*
returns a list of files containing <item> in their names.
*Dir [<dir>]*
returns a list of the files and directories in the given directory.
*Send <file1> <file2> ... <fileN>*
Tells the server to send the given files to you.
*Begin*
Tells the server to ignore all lines above this command.
*End*
Like Begin, but specifies to ignore the lines below. (A signature
for example!) A typical session would be to send the following
mail to the mail server:
BEGIN
CD /pub/aminet/util/arc
SEND LhA_e138.run
END
9.5 Getting files from a mailbox
================================
You also can get files from one of the many BBS's (`Bulletin Board
System'). Most of these are driven by private users, so there is
nearly everywhere a mailbox which doesn't cause a too expensive
telephone bill.
I want to publish a list of all Amiga mailboxes here. So please
send to me a list of all mailboxes which are related to the Amiga - in
any way. I need all telephone numbers of the boxes and their name.
Tell me the nation where the box resides and - if possible - some more
info (Does the box have Aminet or the Fish PD or FRAS? Is the box
especially for Amiga users?)
Thanks, Ignaz Kellerer
For a list of mailboxes in Germany or Austria or Switzerland, look
at the German version of the AmigaFAQ.
9.6 The Fish PD series
======================
A very good source is the Fish PD series. One distinguishes between
the floppy disks and the CD-Roms.
9.6.1 The Amiga Library disks
-----------------------------
Fred Fish has started in the middle eighties to collect freely
distributable software on floppy disks. There are 1000 disks and very
much good stuff on it. Most Amiga dealers sell them and most magazines
contain addresses of people mailing them to you for about 3$ per disk
or less. Fred Fish has terminated offering software on floppy disks.
Instead, there is a dealer who offers the new software from the CD-Roms
on floppy disks.
There are some things which can be found on the Fish disks, but not
on Aminet. However, you can get them with FTP. See Fish disk xxx.
9.6.2 The Fresh Fish CD-Roms
----------------------------
Fred Fish is going on to offer freely distributable software. But
now he collects it on CD-Rom's. He releases two different kinds of CD's:
1. Monthly released disks are divided into roughly three sections:
1. New material, which includes the material from the new
unreleased floppy disks as well as material which does not
appear in the floppy distribution, about 84Mb on the first
disk.
2. Useful utilities that can be used directly off the CD-ROM if
desired, thus freeing up the corresponding amount of hard
disk space (GNU Emacs, Gnu C, GNU C++, Amiga E, PasTeX,
AmigaGuide, Installer, 2.0 and 3.0-Includes, different
archivers, tape drivers, the AmiCDROM filesystem and many
other GNU and BSD tools, ...), about 150Mb on the first disk.
3. Older material from previous released floppy disks or
CD-ROM's, about 404 Mb on the first disk. (Fish disk 600-910)
2. Disks containing the latest software as well as recent software in
packed format only. (These are intended to be used for example in
BBS's.)
I recommend especially the first kind of Fish CD's. They cost
about 20$ plus 3$ for shipping (5$ outside USA/Canada/Mexico) and are
available from
Amiga Library Services
610 N. Alma School Road, Suite 18
Chandler, AZ 85224-3687
U.S.A.
Phone/FAX: (602) 917-0917
9.7 How do I Read and write MS-Dos disks?
=========================================
No problem for owners of Workbench 2.1 or higher: The program
CrossDos is part of the Workbench. All you have to do is mounting the
device `pc0:' by putting it into the drawer `Devs:DOSDrivers' or by
double-clicking the icon in `Sys:Storage/DOSDrivers'. Ms-Dos disks in
drive `df0:' can now be handled in the usual manner replacing the word
`df0:' by `pc0:'. For example the directory can be shown with the
command dir pc0:.
People still running Workbench 2.0 or lower need a program called
`MSH'. You will find this on the Aminet (directory misc/emu) and on
Fish disk 382. See Sources. After editing the file `devs:MountList' as
described in the documentation you have to say Mount msh: in the CLI
and can now do the same as above replacing the word `pc0:' with `msh:'.
9.8 How do I split large files?
===============================
There are some archives which are too large to fit on one disk. To
transfer them on disks you need to split them into smaller pieces and
transfer each part on a separate disk. I recommend Martin Schlodder's
`Splitter'. (Aminet, `util/misc/splitter_121.lha'. The archive
contains binaries for MS-DOS and should be compilable without problems
on any Unix system.
9.9 Discussing things
=====================
A mailing list is a server that allows to discuss special things via
Email. The server holds a list of people that are interested in the
respective topic. For example, the gcc mailing list will discuss bugs,
new features and other problems of gcc. (see Compilers) If a mail is
sent to the server from someone he will forward this mail to all the
other people on the list.
You will be added to the list by sending a mail to the server which
will usually contain the word `Subscribe' or something similar. Once you
are no more interested in the mailing list you can unsubscribe.
Unforunately the servers have a different syntax of subscribing and
unsubscribing. The best way to find how to subscribe is to send a mail
with the word `Help' to the server. He will reply a mail which should
explain how to handle this special server.
Some mailing lists are:
Topic Server
Amok listserv@amokle.stgt.sub.org
Dice dice-request@castrov.cuc.ab.ca or
dice-request@hactar.hanse.de (Germany)
gcc listserv@lists.funet.fi
Lisp amigalisp@contessa.phone.net
Mui mui-request@taloa.unice.fr
Oberon-A oberon-a-request@wossname.apana.org.au
9.10 Other FAQ's
================
This is not the only FAQ, of course. Lots of FAQ's are available
either by being posted to newsgroups or by access via FTP.
*German Amiga-FAQ*
This is the german translation of the AmigaFAQ you are reading.
Newsgroups: de.comp.sys.amiga.misc,
zer.z-netz.rechner.amiga.allgemein HTML:
`http://www.leo.org/archiv/amiga/misc/amigafaq/' Aminet:
`docs/misc/AmigaFAQg.lha' Maintainer: Ignaz Kellerer,
kellerer@informatik.tu-muenchen.de
*Amiga related books FAQ*
This is a list of books for the Amiga, including short discussions,
prices and sources. Newsgroups: comp.sys.amiga.misc,
comp.sys.amiga.introduction, comp.sys.amiga.programmer (monthly)
HTML: `http://eksl-www.cs.umass.edu/~atkin/amiga/books.faq.html'
Ftp: rtfm.mit.edu, `pub/usenet/comp.sys.amiga.misc'. Maintainer:
Marc Atkin, atkin@cs.umass.edu
*AmiTCP/IP FAQ*
This is for users of AmiTCP/IP, a set of programs which allows to
include an Amiga into a TCP/IP network. (Most well known nets,
Internet for example use TCP/IP.) Newsgroups: comp.sys.amiga.misc,
comp.sys.amiga.datacomm, comp.sys.amiga.networking (biweekly) Ftp:
rtfm.mit.edu, pub/usenet/comp.sys.amiga.networking Maintainer:
Neil J. McRae (atcpfaq@domino.demon.co.uk)
*Amiga Networking FAQ*
Unlike the AmiTCP/IP FAQ this one wants to cover all aspects of
networking, including TCP/IP and Envoy. Newsgroups:
comp.sys.amiga.datacomm, comp.sys.amiga.hardware Ftp:
rtfm.mit.edu, pub/usenet/comp.sys.amiga.networking Maintainer:
Richard Norman (norman@afas.msfc.nasa.gov)
*Point Manager FAQ*
Networking seems to be quite a problem: This FAQ os for Point
Manager, a FidoNet-client (so-called points). Newsgroups:
comp.sys.amiga.datacomm Ftp: rtfm.mit.edu,
pub/usenet/comp.sys.amiga.datacomm Maintainer: Eric Krieger
(pm_faq@quasar.hacktic.nl)
*All about FTP*
Explains the usage of the file transfer program FTP. See FTP.
Newsgroups: comp.sys.amiga.misc (monthly) Ftp: Aminet, info/start
Betreuer: Urban Dominik Mueller (umueller@amiga.icu.net.ch)
The Amiga-FAQ archive
*********************
The Amiga-FAQ is available in different formats: Ascii format (which
is posted to the nets) AmigaGuide format (which is the adequate format
on the Amiga) and in dvi format (to be printed). Additionally there is
some stuff, that might be useful or interesting, but could not be
included into the Amiga-FAQ:
txt/amiga.history On the Amiga's history
txt/story.txt The Commodore story (or: the Tramiel
story ;-)
txt/amiga.newsgroups Overview on comp.sys.amiga.*
txt/amiga.sites List of FTP sites
txt/AmigaOverview.tex A short overview on the Amiga-Soft- and
Hardware
txt/Hardware.tips For those people who can't live without solder
src/JWSplit.c The source of a file splitter
src/JWJoin.c The opponent to JWSplit
src/addtoc.c Utility to add a toc to texinfo-created docs
(this document uses it)
programmers/* Some stuff for programmers: pragmas, vararg
versions of some tag functions and some
amiga.lib functions (HookEntry, DoMethod)
I decided to collect these in the Amiga-FAQ archive. It is called
AmigaFAQ.lha and can be found on Aminet, directory `docs/misc'.
Contributions
*************
This FAQ can neither get useful nor hit further development without
your help. Suggestions, contributions, new answers, critics, anything
is rather welcome.
Please note, that very major subjects are absolutely missing yet:
Nothing about sound, nothing on graphic cards, no Animation. These are
some of the Amiga's best points! But I don't know them ... :-(
So grab your keyboard (Your pencil? Well, if there's no other way...)
and send mail to:
Ignaz Kellerer
Georg-Habel-Str. 11
81241 Munich (Germany)
Tel. (+49) 089 / 885147
Internet: kellerer@informatik.tu-muenchen.de
Credits
*******
My thanks go to:
*Reinhard Spisser and Sebastiano Vigna*
for the Amiga version of texinfo. This is written with it.
*The Free Software Foundation*
for the original version of texinfo and many other excellent
programs.
*Dylan McNamee*
for contributing the sections on Editors, Word Processors, DTP and
Postscript and some wording fixes.
*Joseph Luk*
for help in the section on chunky/planar, double buffering and
PAL/NTSC
*Urban Dominik Mueller*
for the FAQ on FTP and Mail-servers.
*Lars Hecking (lhecking@nmrc.ucc.ie)*
*Philippe Brand (phb@colombo.telesys-innov.fr)*
for the complete gcc part
*Jochen Wiedmann (zrawi01@decap2.zdv.uni-tuebingen.de)*
for the composition and posting of the Amiga FAQ until July 1994.
Index
*****
. (replacement) Dot-Replacement
.arj Endings
.dms Endings
.gz Endings
.lha Endings
.lzh Endings
.netrc FTP
.sfx Endings
.tar Endings
.z Endings
.Z Endings
.zip Endings
.zom Endings
.zoo Endings
68EC020 68EC0xx
68EC030 68EC0xx
68LC040 68EC0xx
A1200 (HD) A1200-HD
AmiBooksFAQ FAQs
Amiga Library disks Fish floppy disks
Amiga networking FAQ FAQs
Amiga-FAQ archive Amiga-FAQ Archive
AmigaBasic AmigaBasic
AmigaSciSchool Infos
Aminet FTP
AmiTCP/IP FAQ FAQs
Anonymous FTP
ANS Japanese
ARexx ARexx
Assemblers Compilers
AutoDocs Includes
Basic Compilers
BBS Mailbox
C Compilers
C++ Compilers
C-program (gcc) Compiling
Catalog description Localizing
Catalog translation Localizing
Catalogs Localizing
CatComp Localizing
CATS CATS
Chunky displays Chunky vs. Planar
Commodore, Frankfurt Developer
Commodore, West Chester CATS
comp.sys.amiga.reviews Reviews
Compilers Compilers
Console window WindowPtr
Contributions Contributions
Credits Credits
CrossDos MS-Dos disks
Current directory Dot-Replacement
DaggeX X11
Desktop Publishing DTP
Developer Developer
DoMethod Missing functions
DoSuperMethod Missing functions
Doublebuffering Doublebuffering
DTP DTP
Editors Editors
Emulators Emulators
endings Endings
Enforcer 68EC0xx
Esc sequences Printer control
FAQ's, others FAQs
FD-files Pragmas
fd2pragma Pragmas
file endings Endings
Fish CD-Rom Fish CD
Fish disks Fish disk xxx
Fish floppy disks Fish floppy disks
Fish PD Fish
FishCon Infos
FishXref Infos
FlexCat Localizing
Forth Compilers
Fortran Compilers
FPU FPU
Fresh Fish CD-Rom Fish CD
FTP servers FTP
GadTools MUI
Gcc The GNU C compiler
gcc-amiga-libraries Amiga Libraries
gcc-authors Authors
gcc-compiling Compiling
gcc-current Current Version
gcc-how-to-get-help How to get help
gcc-inline-headers Inline Headers
gcc-installation Installation
gcc-requirements Requirements
gcc-sources Sources for Gcc
GfxBase X11
GigaMem 68EC0xx
Graphics Graphics
GUI Workbench
Guo Biao Chinese
HD (A1200) A1200-HD
HD compression HD-Compression
Hirsch & Wolf CATS
history Amiga-FAQ Archive
HookEntry Missing functions
HZview Chinese
IBM emulator IBM-compatibles
Icons Icons
Includes Includes
JemTeX Japanese
JIStoJi Japanese
jmore Japanese
Kanji Japanese
KingFisher Infos
KitCat Localizing
LibAllocPooled Missing functions
Linux Unix
Lisp Compilers
locale.library Localizing
Localizing Localizing
MagicWB Icons
Mail-server Mail
mailbox Mailbox
Mailing lists Mailing lists
MakeCat Localizing
Memory, virtual 68EC0xx
Missing functions Missing functions
MMU 68EC0xx
Modula-2 Compilers
Monitors Monitors
MS-Dos (emulator) IBM-compatibles
MS-Dos (Syquest) MsDos-Syquest
MS-Dos disks MS-Dos disks
Msh MS-Dos disks
MUI MUI
Multiscan Monitors
MWB Icons
NDA Developer
NDK Includes
NDU Includes
NDUK Includes
NetBSD Unix
NewIcons Icons
NTSC PAL-NTSC
Oberon Compilers
Oberon-A Compilers
packers Endings
packers on Unix Endings
Page Layout Languages Word Processors
PAL PAL-NTSC
Pascal Compilers
Pipe (command) Pipe command
PIPE: Pipe
Planar displays Chunky vs. Planar
Point manager FAQ FAQs
Postscript Postscript
pragmas Pragmas
Printer control Printer control
Prolog Compilers
Queue-handler Pipe
Reviews Reviews
RKMs Manuals
Rom Kernel manuals Manuals
Splitting files Splitting
Stacker HD-Compression
Syquest MsDos-Syquest
TeX TeX
Text Editors Editors
Unix Unix
Unix-LhA Unix-LhA
VGA Monitors
Word Processors Word Processors
Workbench Workbench
Wysiwyg Word Processors
X11 X11
XFH HD-Compression
XPK HD-Compression
_mchar _mchar
_pchar Pipe command